Change search indexing to use batches to minimize resource usage (#18451)

This commit is contained in:
Eugen Rochko 2022-05-18 23:29:14 +02:00 committed by GitHub
parent ded5a0254a
commit 679b7158e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 64 additions and 19 deletions

View file

@ -38,7 +38,7 @@ require_relative '../lib/mastodon/version'
require_relative '../lib/mastodon/rack_middleware'
require_relative '../lib/devise/two_factor_ldap_authenticatable'
require_relative '../lib/devise/two_factor_pam_authenticatable'
require_relative '../lib/chewy/strategy/custom_sidekiq'
require_relative '../lib/chewy/strategy/mastodon'
require_relative '../lib/webpacker/manifest_extensions'
require_relative '../lib/webpacker/helper_extensions'
require_relative '../lib/rails/engine_extensions'

View file

@ -13,15 +13,14 @@ Chewy.settings = {
journal: false,
user: user,
password: password,
sidekiq: { queue: 'pull' },
}
# We use our own async strategy even outside the request-response
# cycle, which takes care of checking if Elasticsearch is enabled
# or not. However, mind that for the Rails console, the :urgent
# strategy is set automatically with no way to override it.
Chewy.root_strategy = :custom_sidekiq
Chewy.request_strategy = :custom_sidekiq
Chewy.root_strategy = :mastodon
Chewy.request_strategy = :mastodon
Chewy.use_after_commit_callbacks = false
module Chewy

View file

@ -21,6 +21,10 @@
every: '6h'
class: Scheduler::Trends::ReviewNotificationsScheduler
queue: scheduler
indexing_scheduler:
every: '5m'
class: Scheduler::IndexingScheduler
queue: scheduler
media_cleanup_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *'
class: Scheduler::MediaCleanupScheduler