操作
Sidekiq配置¶
Sidekiq 是一种广泛使用的后台任务框架,可以作为队列后端进行配置。我已经在全新的 Ubuntu 18.04 系统上,使用 Redmine 4.1.1、Redis 版本 4 和 Sidekiq 6 进行了以下安装和配置步骤测试。
1. 前提条件:¶
- 安装 redis-server。
2. 安装 sidekiq¶
- 将 gem 作为依赖项添加到
Gemfile.local
文件中。如果该文件不存在,您需要创建它。gem 'sidekiq'
- 运行
bundle install
以安装依赖项
3. 配置 Redmine 以使用 sidekiq
作为后端¶
- 如果该文件不存在,通过复制现有示例文件创建
config/additional_environment.rb
文件cp config/additional_environment.rb.example config/additional_environment.rb
- 将以下配置行添加到文件中
config.active_job.queue_adapter = :sidekiq
- 重启 Redmine 以重新加载配置文件。
4. 测试配置¶
- 从 Redmine 管理页面浏览到“信息”选项卡并检查邮件队列值
Mailer queue ActiveJob::QueueAdapters::SidekiqAdapter
- 在 Redmine 中执行一些操作以触发一些通知电子邮件。在此步骤中,Redmine 只会将后台任务推送到 Sidekiq 后端。
- 临时启动 sidekiq 以处理队列并发送电子邮件
RAILS_ENV=production bundle exec sidekiq
启动过程的输出示例
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 {}
任务处理的输出示例
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
- 如果一切顺利,停止命令。
5. 配置 sidekiq 以作为系统服务运行¶
- 按照https://github.com/mperham/sidekiq/wiki/Deployment#running-your-own-process 中描述的官方步骤进行操作
- 上述步骤指向一个
sidekiq.service
示例文件,该文件可以用于配置服务 - 在服务配置过程中,至少必须提供以下信息
工作目录
用户
组
建议您仔细阅读所有说明和如何配置服务。
- 启用并启动服务
sudo systemctl enable sidekiq sudo systemctl start sidekiq
- 再次测试电子邮件通知
由 Marius BĂLTEANU 更新于 6个月前 · 5次修订