Explorar el Código

Separate background jobs into different queues. ATTENTION: new queue "pull"

must be added to the Sidekiq invokation in your systemd file

The pull queue will handle link crawling, thread resolving, and OStatus
processing. Such tasks are more likely to hang for a longer time (due to
network requests) so it is more sensible to not make the "in-house" tasks
wait for them.
master
Eugen Rochko hace 7 años
padre
commit
f722bd2387
Se han modificado 13 ficheros con 16 adiciones y 10 borrados
  1. +1
    -1
      app/workers/after_remote_follow_request_worker.rb
  2. +1
    -1
      app/workers/after_remote_follow_worker.rb
  3. +1
    -1
      app/workers/import_worker.rb
  4. +1
    -1
      app/workers/link_crawl_worker.rb
  5. +2
    -0
      app/workers/merge_worker.rb
  6. +1
    -1
      app/workers/notification_worker.rb
  7. +1
    -1
      app/workers/processing_worker.rb
  8. +2
    -0
      app/workers/regeneration_worker.rb
  9. +1
    -1
      app/workers/salmon_worker.rb
  10. +1
    -1
      app/workers/thread_resolve_worker.rb
  11. +2
    -0
      app/workers/unmerge_worker.rb
  12. +1
    -1
      docker-compose.yml
  13. +1
    -1
      docs/Running-Mastodon/Production-guide.md

+ 1
- 1
app/workers/after_remote_follow_request_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class AfterRemoteFollowRequestWorker
include Sidekiq::Worker

sidekiq_options retry: 5
sidekiq_options queue: 'pull', retry: 5

def perform(follow_request_id)
follow_request = FollowRequest.find(follow_request_id)


+ 1
- 1
app/workers/after_remote_follow_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class AfterRemoteFollowWorker
include Sidekiq::Worker

sidekiq_options retry: 5
sidekiq_options queue: 'pull', retry: 5

def perform(follow_id)
follow = Follow.find(follow_id)


+ 1
- 1
app/workers/import_worker.rb Ver fichero

@@ -5,7 +5,7 @@ require 'csv'
class ImportWorker
include Sidekiq::Worker

sidekiq_options retry: false
sidekiq_options queue: 'pull', retry: false

def perform(import_id)
import = Import.find(import_id)


+ 1
- 1
app/workers/link_crawl_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class LinkCrawlWorker
include Sidekiq::Worker

sidekiq_options retry: false
sidekiq_options queue: 'pull', retry: false

def perform(status_id)
FetchLinkCardService.new.call(Status.find(status_id))


+ 2
- 0
app/workers/merge_worker.rb Ver fichero

@@ -3,6 +3,8 @@
class MergeWorker
include Sidekiq::Worker

sidekiq_options queue: 'pull'

def perform(from_account_id, into_account_id)
FeedManager.instance.merge_into_timeline(Account.find(from_account_id), Account.find(into_account_id))
end


+ 1
- 1
app/workers/notification_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class NotificationWorker
include Sidekiq::Worker

sidekiq_options retry: 5
sidekiq_options queue: 'push', retry: 5

def perform(xml, source_account_id, target_account_id)
SendInteractionService.new.call(xml, Account.find(source_account_id), Account.find(target_account_id))


+ 1
- 1
app/workers/processing_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class ProcessingWorker
include Sidekiq::Worker

sidekiq_options backtrace: true
sidekiq_options queue: 'pull', backtrace: true

def perform(account_id, body)
ProcessFeedService.new.call(body, Account.find(account_id))


+ 2
- 0
app/workers/regeneration_worker.rb Ver fichero

@@ -3,6 +3,8 @@
class RegenerationWorker
include Sidekiq::Worker

sidekiq_options queue: 'pull', backtrace: true

def perform(account_id, timeline_type)
PrecomputeFeedService.new.call(timeline_type, Account.find(account_id))
end


+ 1
- 1
app/workers/salmon_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class SalmonWorker
include Sidekiq::Worker

sidekiq_options backtrace: true
sidekiq_options queue: 'pull', backtrace: true

def perform(account_id, body)
ProcessInteractionService.new.call(body, Account.find(account_id))


+ 1
- 1
app/workers/thread_resolve_worker.rb Ver fichero

@@ -3,7 +3,7 @@
class ThreadResolveWorker
include Sidekiq::Worker

sidekiq_options retry: false
sidekiq_options queue: 'pull', retry: false

def perform(child_status_id, parent_url)
child_status = Status.find(child_status_id)


+ 2
- 0
app/workers/unmerge_worker.rb Ver fichero

@@ -3,6 +3,8 @@
class UnmergeWorker
include Sidekiq::Worker

sidekiq_options queue: 'pull'

def perform(from_account_id, into_account_id)
FeedManager.instance.unmerge_from_timeline(Account.find(from_account_id), Account.find(into_account_id))
end


+ 1
- 1
docker-compose.yml Ver fichero

@@ -33,7 +33,7 @@ services:
restart: always
build: .
env_file: .env.production
command: bundle exec sidekiq -q default -q mailers -q push
command: bundle exec sidekiq -q default -q mailers -q pull -q push
depends_on:
- db
- redis


+ 1
- 1
docs/Running-Mastodon/Production-guide.md Ver fichero

@@ -180,7 +180,7 @@ User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 5 -q default -q mailers -q push
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push
TimeoutSec=15
Restart=always



Cargando…
Cancelar
Guardar