SidekiqConfiguration » History » Revision 4
Revision 3 (Go MAEDA, 2020-06-14 03:41) → Revision 4/5 (Mischa The Evil, 2020-06-14 07:58)
h2. Sidekiq configuration "Sidekiq":https://sidekiq.org/ is one of the more widely used background job frameworks that you can configure as queuing backend. I've tested to following install and configuration steps on a fresh Ubuntu 18.04 with Redmine 4.1.1, Redis version 4 and Sidekiq 6. h3. 1. Prerequisites: # Install redis-server. h3. 2. Install sidekiq # Add the gem as dependency in @Gemfile.local@ file. If the file doesn't exist, you need to create it. <pre> gem 'sidekiq' </pre> # Run @bundle install@ to install the dependency h3. 3. Configure Sidekiq # Create @config/sidekiq.yml@ file inside Redmine directory and set the queues <pre> --- :queues: - mailers </pre> h3. 4. Configure Redmine to use @sidekiq@ as backend # Create @config/additional_environment.rb@ file if the file does not exist by copying the existing example file: <pre> cp config/additional_environment.rb.example config/additional_environment.rb config/additional_environment.rb@ </pre> # Add the below config line to the file: <pre> config.active_job.queue_adapter = :sidekiq </pre> # Restart Redmine to reload the configuration file. h3. 5. Test the configuration # Browse to Information tab from Redmine Administration page and check the mailer queue value: <pre> Mailer queue ActiveJob::QueueAdapters::SidekiqAdapter </pre> # Perform some actions in Redmine in order to trigger some notifications emails. In this step, Redmine only pushes the background jobs to Sidekiq backend. # Temporary start sidekiq in order to process the queue and send the emails: <pre> RAILS_ENV=production bundle exec sidekiq </pre> Output example of startup process: <pre> 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: Booted Rails 5.2.4.2 application in production environment 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: Running in ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu] 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: See LICENSE and the LGPL-3.0 for licensing details. 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org 2020-06-13T15:08:12.471Z pid=23782 tid=gqluhczs2 INFO: Booting Sidekiq 6.0.7 with redis options {} </pre> Output example of job processing: <pre> 2020-06-13T14:53:19.773Z pid=23268 tid=gmo48ykw4 class=ActionMailer::DeliveryJob jid=0b1943f5a675330944781492 INFO: start 2020-06-13T14:53:21.171Z pid=23268 tid=gmo48ykw4 class=ActionMailer::DeliveryJob jid=0b1943f5a675330944781492 elapsed=1.397 INFO: done </pre> # If everything went well, stop the command. h3. 6. Configure sidekiq to run as a system service # Follow the official steps described in https://github.com/mperham/sidekiq/wiki/Deployment#running-your-own-process # The above steps points to a @sidekiq.service@ example file which can be used to configure the service # During service configuration, at least the following information must be provided: * @WorkingDirectory@ * @User@ * @Group@ I recommend to carefully read all the instructions and how to configure the service. # Enable and start the service: <pre> sudo systemctl enable sidekiq sudo systemctl start sidekiq </pre> # Test again the email notifications