add optional sidekiq for background jobs

pull/105/head
Alex Turchyn 2 years ago
parent 6f3fe1dd7b
commit 7ed1b71a6b

@ -27,6 +27,7 @@ gem 'rails-i18n'
gem 'rollbar', require: ENV.key?('ROLLBAR_ACCESS_TOKEN')
gem 'ruby-vips'
gem 'shakapacker'
gem 'sidekiq', require: ENV.key?('REDIS_URL')
gem 'sqlite3', require: false
gem 'strip_attributes'
gem 'turbo-rails'

@ -388,6 +388,8 @@ GEM
zeitwerk (~> 2.5)
rainbow (3.1.1)
rake (13.0.6)
redis-client (0.14.1)
connection_pool
regexp_parser (2.8.1)
reline (0.3.5)
io-console (~> 0.5)
@ -458,6 +460,11 @@ GEM
rack-proxy (>= 0.6.1)
railties (>= 5.2)
semantic_range (>= 2.3.0)
sidekiq (7.1.2)
concurrent-ruby (< 2)
connection_pool (>= 2.3.0)
rack (>= 2.2.4)
redis-client (>= 0.14.0)
signet (0.17.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
@ -554,6 +561,7 @@ DEPENDENCIES
rubocop-rspec
ruby-vips
shakapacker
sidekiq
simplecov
sqlite3
strip_attributes

@ -45,6 +45,8 @@ Rails.application.configure do
config.cache_store = :null_store
end
config.active_job.queue_adapter = :sidekiq if defined?(Sidekiq)
# Store uploaded files on the local file system (see config/storage.yml for options).
config.active_storage.service = :disk
config.active_storage.resolve_model_to_route = :rails_storage_proxy

@ -25,6 +25,8 @@ Rails.application.configure do
config.action_controller.perform_caching = true
config.active_record.sqlite3_production_warning = false
config.active_job.queue_adapter = :sidekiq if defined?(Sidekiq)
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
# config.require_master_key = true

@ -0,0 +1,16 @@
# frozen_string_literal: true
if defined?(Sidekiq)
require 'sidekiq/web'
Sidekiq::Web.use(Rack::Auth::Basic) do |_, password|
next true if Rails.env.development?
ActiveSupport::SecurityUtils.secure_compare(
Digest::SHA256.hexdigest(password),
Digest::SHA256.hexdigest(ENV.fetch('SIDEKIQ_BASIC_AUTH_PASSWORD'))
)
end
Sidekiq.strict_args!
end

@ -2,6 +2,7 @@
Rails.application.routes.draw do
mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
mount Sidekiq::Web => '/sidekiq' if defined?(Sidekiq)
root 'dashboard#index'

@ -0,0 +1,6 @@
queues:
- [default, 1]
- [mailers, 1]
production:
:concurrency: 15
Loading…
Cancel
Save