SidekiqConfiguration » History » Version 1
  Marius BĂLTEANU, 2020-06-13 17:25 
  
| 1 | 1 | Marius BĂLTEANU | h2. Sideqik configuration | 
|---|---|---|---|
| 2 | |||
| 3 | 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. | ||
| 4 | |||
| 5 | h3. 1. Prerequisites: | ||
| 6 | |||
| 7 | # Install redis-server. | ||
| 8 | |||
| 9 | h3. 2. Install sideqik | ||
| 10 | |||
| 11 | # Add the gem as dependency in @Gemfile.local@ file. If the file doesn't exist, you need to create it. | ||
| 12 | <pre> | ||
| 13 | gem 'sidekiq' | ||
| 14 | </pre> | ||
| 15 | # Run @bundle install@ to install the dependency | ||
| 16 | |||
| 17 | h3. 3. Configure Sidekiq | ||
| 18 | |||
| 19 | # Create @config/sideqik.yml@ file inside Redmine directory and set the queues | ||
| 20 | <pre> | ||
| 21 | --- | ||
| 22 | :queues: | ||
| 23 | - mailers | ||
| 24 | </pre> | ||
| 25 | |||
| 26 | h3. 4. Configure Redmine to use @sidekiq@ as backend | ||
| 27 | |||
| 28 | # Create @config/additional_environment.rb@ file if the file does not exist by copying the existing example file: | ||
| 29 | <pre> | ||
| 30 | cp config/additional_environment.rb.example config/additional_environment.rb@ | ||
| 31 | </pre> | ||
| 32 | # Add the below config line to the file: | ||
| 33 | <pre> | ||
| 34 | config.active_job.queue_adapter = :sidekiq | ||
| 35 | </pre> | ||
| 36 | # Restart Redmine to reload the configuration file. | ||
| 37 | |||
| 38 | h3. 5. Test the configuration | ||
| 39 | |||
| 40 | # Browse to Information tab from Redmine Administration page and check the mailer queue value: | ||
| 41 | <pre> | ||
| 42 | Mailer queue ActiveJob::QueueAdapters::SidekiqAdapter | ||
| 43 | </pre> | ||
| 44 | |||
| 45 | # Perform some actions in Redmine in order to trigger some notifications emails. In this step, Redmine only pushes the background jobs to Sidekiq backend. | ||
| 46 | # Temporary start sidekiq in order to process the queue and send the emails: | ||
| 47 | <pre> | ||
| 48 | RAILS_ENV=production bundle exec sidekiq | ||
| 49 | </pre> | ||
| 50 | |||
| 51 | Output example of startup process: | ||
| 52 | <pre> | ||
| 53 | 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: Booted Rails 5.2.4.2 application in production environment | ||
| 54 | 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] | ||
| 55 | 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: See LICENSE and the LGPL-3.0 for licensing details. | ||
| 56 | 2020-06-13T15:08:12.470Z pid=23782 tid=gqluhczs2 INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org | ||
| 57 | 2020-06-13T15:08:12.471Z pid=23782 tid=gqluhczs2 INFO: Booting Sidekiq 6.0.7 with redis options {} | ||
| 58 | </pre> | ||
| 59 | |||
| 60 | Output example of job processing: | ||
| 61 | <pre> | ||
| 62 | 2020-06-13T14:53:19.773Z pid=23268 tid=gmo48ykw4 class=ActionMailer::DeliveryJob jid=0b1943f5a675330944781492 INFO: start | ||
| 63 | 2020-06-13T14:53:21.171Z pid=23268 tid=gmo48ykw4 class=ActionMailer::DeliveryJob jid=0b1943f5a675330944781492 elapsed=1.397 INFO: done | ||
| 64 | </pre> | ||
| 65 | |||
| 66 | h3. 6. Configure sidekiq to run as a system service | ||
| 67 | |||
| 68 | # Follow the official steps described in https://github.com/mperham/sidekiq/wiki/Deployment#running-your-own-process | ||
| 69 | # The above steps points to a @sidekiq.service@ example file which can be used to configure the service | ||
| 70 | # During service configuration, at least the following information must be provided: | ||
| 71 | |||
| 72 | * @WorkingDirectory@ | ||
| 73 | * @User@ | ||
| 74 | * @Group@ | ||
| 75 | |||
| 76 | I recommend to carefully read all the instructions and how to configure the service. | ||
| 77 | # Enable and start the service: | ||
| 78 | <pre> | ||
| 79 | sudo systemctl enable sidekiq | ||
| 80 | sudo systemctl start sidekiq | ||
| 81 | </pre> | ||
| 82 | # Test again the email notifications |