implement background task queue

This commit is contained in:
Hazelnoot 2025-06-17 14:06:15 -04:00
parent 911f90f95a
commit 4b08e978ce
18 changed files with 482 additions and 63 deletions

View file

@ -223,17 +223,42 @@ id: 'aidx'
# Number of worker processes
#clusterLimit: 1
# +-------------------------+
# | Job concurrency options |
# +-------------------------+
#
### Available options:
# [type]JobConcurrency - limits the number jobs that can run at the same time.
# Sharkey will allow this many jobs of this type *per worker process*.
# [type]JobPerSec - limits the total number of jobs that may complete within a single second.
# If this limit is exceeded, then Sharkey will pause this type of job until the next second.
# [type]JobMaxAttempts - limits the number of times that a job is allowed to fail and re-try before it's permanently stopped.
# If this limit is exceeded, then the job is considered "failed" and recorded for debugging.
#
### Job types:
# inbox - processes ActivityPub messages (AKA "Activities") received from remote instances.
# All inbound activities are queued and processed in chronological order by this job.
# deliver - processes ActivityPub messages (AKA "Activities") being set to remote instances.
# All outbound activities are queued and processed in chronological order by this job.
# relationship - processes user-to-user tasks including follow/unfollow, block/unblock, account migrations, and all follow import jobs.
# background - processes background synchronization tasks that need to happen soon (but not immediately), such as remote user updates and instance metadata updates.
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
#deliverJobConcurrency: 128
#inboxJobConcurrency: 16
#relationshipJobConcurrency: 16
#backgroundJobConcurrency: 32
# Job rate limiter
# deliverJobPerSec: 128
# inboxJobPerSec: 32
#deliverJobPerSec: 128
#inboxJobPerSec: 32
#relationshipJobPerSec: 64
#backgroundJobPerSec: 256
# Job attempts
# deliverJobMaxAttempts: 12
# inboxJobMaxAttempts: 8
#deliverJobMaxAttempts: 12
#inboxJobMaxAttempts: 8
#backgroundJobMaxAttempts: 8
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4