以下の内容はhttps://madogiwa0124.hatenablog.com/entry/2022/08/27/142749より取得しました。


Ruby on Rails: sidekiq-schedulerでjobをスケジュール実行するメモ

Railsで非同期jobを利用する際にSidekiqを使っている場合、任意のJobをスケジュール実行したいことがあります。 今までは割とsidekiq-cronを使うことが多かったのですが、最近はsidekiq-schedulerの方が活発にメンテナンスされており、そちらを使ってみたので導入方法とかをメモ📝

github.com

導入方法

導入は簡単で以下のようにinstallして

gem install sidekiq-scheduler # Gemfileに追記してbundle install

既存のconfig/sidekiq.ymlに以下のように追記してあげるだけです。

:schedule:
  hello_world:
    cron: '0 * * * * *'   # Runs once per minute
    class: HelloWorld

この辺のsidekiq.rbをいじらずに使えるのも良いですね ✨

dashboardにスケジュールの情報を表示する

web uiも用意されていて以下をroutes.rbに記載すればdashboardにスケジュールを表示できます。

require 'sidekiq/web'
require 'sidekiq-scheduler/web'
mount Sidekiq::Web, at: '/sidekiq'

その他

またsidekiq-cronと同様にredisに既にエンキューされてないかチェックしてそうなので、複数プロセスで立ち上げた際にスケジュールjobが重複して実行されないようになってそう👀

github.com

おわりに

sidekiq-schedulerよさそう!!




以上の内容はhttps://madogiwa0124.hatenablog.com/entry/2022/08/27/142749より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14