Project

General

Profile

SidekiqConfiguration » History » Revision 2

Revision 1 (Marius BÄ‚LTEANU, 2020-06-13 17:25) → Revision 2/5 (Marius BÄ‚LTEANU, 2020-06-13 17:27)

h2. Sideqik configuration 

 Sidekiq 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 sideqik 

 # 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/sideqik.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@ 
 </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