项目

常规

个人资料

操作

Sidekiq配置

Sidekiq 是一种广泛使用的后台任务框架,可以作为队列后端进行配置。我已经在全新的 Ubuntu 18.04 系统上,使用 Redmine 4.1.1、Redis 版本 4 和 Sidekiq 6 进行了以下安装和配置步骤测试。

1. 前提条件:

  1. 安装 redis-server。

2. 安装 sidekiq

  1. 将 gem 作为依赖项添加到 Gemfile.local 文件中。如果该文件不存在,您需要创建它。
    gem 'sidekiq'
    
  2. 运行 bundle install 以安装依赖项

3. 配置 Redmine 以使用 sidekiq 作为后端

  1. 如果该文件不存在,通过复制现有示例文件创建 config/additional_environment.rb 文件
    cp config/additional_environment.rb.example config/additional_environment.rb
    
  2. 将以下配置行添加到文件中
    config.active_job.queue_adapter = :sidekiq
    
  3. 重启 Redmine 以重新加载配置文件。

4. 测试配置

  1. 从 Redmine 管理页面浏览到“信息”选项卡并检查邮件队列值
      Mailer queue                   ActiveJob::QueueAdapters::SidekiqAdapter
    
  2. 在 Redmine 中执行一些操作以触发一些通知电子邮件。在此步骤中,Redmine 只会将后台任务推送到 Sidekiq 后端。
  3. 临时启动 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
    

  4. 如果一切顺利,停止命令。

5. 配置 sidekiq 以作为系统服务运行

  1. 按照https://github.com/mperham/sidekiq/wiki/Deployment#running-your-own-process 中描述的官方步骤进行操作
  2. 上述步骤指向一个 sidekiq.service 示例文件,该文件可以用于配置服务
  3. 在服务配置过程中,至少必须提供以下信息
    • 工作目录
    • 用户

    建议您仔细阅读所有说明和如何配置服务。

  4. 启用并启动服务
    sudo systemctl enable sidekiq 
    sudo systemctl start sidekiq 
    
  5. 再次测试电子邮件通知

Marius BĂLTEANU 更新于 6个月前 · 5次修订