add optional sidekiq for background jobs
This commit is contained in:
@@ -27,6 +27,7 @@ gem 'rails-i18n'
|
|||||||
gem 'rollbar', require: ENV.key?('ROLLBAR_ACCESS_TOKEN')
|
gem 'rollbar', require: ENV.key?('ROLLBAR_ACCESS_TOKEN')
|
||||||
gem 'ruby-vips'
|
gem 'ruby-vips'
|
||||||
gem 'shakapacker'
|
gem 'shakapacker'
|
||||||
|
gem 'sidekiq', require: ENV.key?('REDIS_URL')
|
||||||
gem 'sqlite3', require: false
|
gem 'sqlite3', require: false
|
||||||
gem 'strip_attributes'
|
gem 'strip_attributes'
|
||||||
gem 'turbo-rails'
|
gem 'turbo-rails'
|
||||||
|
|||||||
@@ -388,6 +388,8 @@ GEM
|
|||||||
zeitwerk (~> 2.5)
|
zeitwerk (~> 2.5)
|
||||||
rainbow (3.1.1)
|
rainbow (3.1.1)
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
|
redis-client (0.14.1)
|
||||||
|
connection_pool
|
||||||
regexp_parser (2.8.1)
|
regexp_parser (2.8.1)
|
||||||
reline (0.3.5)
|
reline (0.3.5)
|
||||||
io-console (~> 0.5)
|
io-console (~> 0.5)
|
||||||
@@ -458,6 +460,11 @@ GEM
|
|||||||
rack-proxy (>= 0.6.1)
|
rack-proxy (>= 0.6.1)
|
||||||
railties (>= 5.2)
|
railties (>= 5.2)
|
||||||
semantic_range (>= 2.3.0)
|
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)
|
signet (0.17.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
faraday (>= 0.17.5, < 3.a)
|
faraday (>= 0.17.5, < 3.a)
|
||||||
@@ -554,6 +561,7 @@ DEPENDENCIES
|
|||||||
rubocop-rspec
|
rubocop-rspec
|
||||||
ruby-vips
|
ruby-vips
|
||||||
shakapacker
|
shakapacker
|
||||||
|
sidekiq
|
||||||
simplecov
|
simplecov
|
||||||
sqlite3
|
sqlite3
|
||||||
strip_attributes
|
strip_attributes
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ Rails.application.configure do
|
|||||||
config.cache_store = :null_store
|
config.cache_store = :null_store
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.active_job.queue_adapter = :sidekiq if defined?(Sidekiq)
|
||||||
|
|
||||||
# Store uploaded files on the local file system (see config/storage.yml for options).
|
# Store uploaded files on the local file system (see config/storage.yml for options).
|
||||||
config.active_storage.service = :disk
|
config.active_storage.service = :disk
|
||||||
config.active_storage.resolve_model_to_route = :rails_storage_proxy
|
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.action_controller.perform_caching = true
|
||||||
config.active_record.sqlite3_production_warning = false
|
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"]
|
# 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).
|
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
||||||
# config.require_master_key = true
|
# 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
|
Rails.application.routes.draw do
|
||||||
mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
|
mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
|
||||||
|
mount Sidekiq::Web => '/sidekiq' if defined?(Sidekiq)
|
||||||
|
|
||||||
root 'dashboard#index'
|
root 'dashboard#index'
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
queues:
|
||||||
|
- [default, 1]
|
||||||
|
- [mailers, 1]
|
||||||
|
|
||||||
|
production:
|
||||||
|
:concurrency: 15
|
||||||
Reference in New Issue
Block a user