專案

一般

設定檔

動作

Sidekiq 組態設定

Sidekiq 是一種廣泛使用的背景作業框架,您可以將其設定為佇列後端。我已在新安裝 Ubuntu 18.04、Redmine 4.1.1、Redis 版本 4 和 Sidekiq 6 的環境中測試過以下安裝和組態步驟。

1. 先決條件:

  1. 安裝 redis-server。

2. 安裝 sidekiq

  1. Gemfile.local 檔案中新增 gem 作為依賴項。如果檔案不存在,您需要建立它。
    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. 在服務設定期間,必須至少提供以下資訊
    • WorkingDirectory
    • User
    • Group

    我建議仔細閱讀所有說明以及如何設定服務。

  4. 啟用並啟動服務
    sudo systemctl enable sidekiq 
    sudo systemctl start sidekiq 
    
  5. 再次測試電子郵件通知

Marius BĂLTEANU6 個月 前更新 · 5 個版本