WIP Switch from Sidekiq to Solid Queue
Some checks failed
continuous-integration/drone/push Build is running
continuous-integration/drone/pr Build is failing

This commit is contained in:
2025-05-04 17:40:33 +04:00
parent b61906059c
commit 0cad4cdcfe
14 changed files with 218 additions and 34 deletions

View File

@@ -47,7 +47,8 @@ module Akkounts
g.stylesheets false
end
config.active_job.queue_adapter = :sidekiq
config.active_job.queue_adapter = :solid_queue
config.mission_control.jobs.http_basic_auth_enabled = false
config.action_mailer.deliver_later_queue_name = nil # use "default" queue

View File

@@ -7,6 +7,10 @@ development:
primary:
<<: *default
database: db/development.sqlite3
queue:
<<: *default
database: db/development_queue.sqlite3
migrations_paths: db/queue_migrate
lndhub:
<<: *default
adapter: postgresql

View File

@@ -54,6 +54,9 @@ Rails.application.configure do
# Highlight code that enqueued background job in logs.
config.active_job.verbose_enqueue_logs = true
# Solid Queue database
config.solid_queue.connects_to = { database: { writing: :queue } }
# Suppress logger output for asset requests.
# config.assets.quiet = true

View File

@@ -54,8 +54,9 @@ Rails.application.configure do
# Replace the default in-process memory cache store with a durable alternative.
# config.cache_store = :mem_cache_store
# Replace the default in-process and non-durable queuing backend for Active Job.
# config.active_job.queue_adapter = :resque
# Solid Queue database
config.solid_queue.connects_to = { database: { writing: :queue } }
# E-mail settings, adapted from https://github.com/mastodon/mastodon
outgoing_email_address = ENV.fetch('SMTP_FROM_ADDRESS', 'accounts@localhost')

View File

@@ -0,0 +1,11 @@
# See https://alvincrespo.hashnode.dev/rails-8s-lazy-route-loading-devise
# TODO remove when Devise is fixed
require 'devise'
Devise # make sure it's already loaded
module Devise
def self.mappings
Rails.application.try(:reload_routes_unless_loaded)
@@mappings
end
end

21
config/queue.yml Normal file
View File

@@ -0,0 +1,21 @@
default: &default
dispatchers:
- polling_interval: 1
batch_size: 500
workers:
- queues: "*"
threads: 3
processes: <%= ENV.fetch("JOB_CONCURRENCY", 1) %>
polling_interval: 0.1
development:
<<: *default
workers:
- queues: "*"
threads: 1
test:
<<: *default
production:
<<: *default

10
config/recurring.yml Normal file
View File

@@ -0,0 +1,10 @@
# production:
# periodic_cleanup:
# class: CleanSoftDeletedRecordsJob
# queue: background
# args: [ 1000, { batch_size: 500 } ]
# schedule: every hour
# periodic_command:
# command: "SoftDeletedRecord.due.delete_all"
# priority: 2
# schedule: at 5am every day

View File

@@ -123,7 +123,7 @@ Rails.application.routes.draw do
end
authenticate :user, ->(user) { user.is_admin? } do
mount Sidekiq::Web, at: '/sidekiq'
mount MissionControl::Jobs::Engine, at: "/jobs"
mount Flipper::UI.app(Flipper), at: '/flipper'
end