Send emails via sidekiq (#380)

* add sidekiq web view if the user is an administrator

* add sidekiq setup configuration and support

* update devise to use delivery_later method and update test

* update conversation to use deliver_later instead of deliver

* Update Routes

* Add Procfile for Heroku One-Click Start

* updating docs

* update concurrency and Procfile for supporting Heroku Free Dyno

* update Procfile.dev
This commit is contained in:
Anto Dominic
2019-12-25 03:03:02 +05:30
committed by Sojan Jose
parent 335e7487e6
commit 4e9290ad76
13 changed files with 53 additions and 5 deletions

View File

@@ -33,6 +33,8 @@ Rails.application.configure do
config.active_storage.service = :local
# Don't care if the mailer can't send.
config.active_job.queue_adapter = :sidekiq
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_caching = false

View File

@@ -75,6 +75,7 @@ Rails.application.configure do
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).
config.i18n.fallbacks = true
config.active_job.queue_adapter = :sidekiq
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify

View File

@@ -75,6 +75,7 @@ Rails.application.configure do
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).
config.i18n.fallbacks = true
config.active_job.queue_adapter = :sidekiq
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify

View File

@@ -43,6 +43,7 @@ Rails.application.configure do
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test
config.active_job.queue_adapter = :test
# Print deprecation notices to the stderr.
config.active_support.deprecation = :stderr

View File

@@ -90,6 +90,12 @@ Rails.application.routes.draw do
end
end
# Sidekiq Web UI
require 'sidekiq/web'
authenticate :user, lambda { |u| u.administrator? } do
mount Sidekiq::Web => '/sidekiq'
end
# Used in mailer templates
resource :app, only: [:index] do
resources :conversations, only: [:show]

23
config/sidekiq.yml Normal file
View File

@@ -0,0 +1,23 @@
# Sample configuration file for Sidekiq.
# Options here can still be overridden by cmd line args.
# Place this file at config/sidekiq.yml and Sidekiq will
# pick it up automatically.
---
:verbose: false
:concurrency: 10
:timeout: 25
# Sidekiq will run this file through ERB when reading it so you can
# even put in dynamic logic, like a host-specific queue.
# http://www.mikeperham.com/2013/11/13/advanced-sidekiq-host-specific-queues/
:queues:
- critical
- default
- low
- mailers
# you can override concurrency based on environment
production:
:concurrency: 3
staging:
:concurrency: 15