Quantcast
Channel: ruby - Madogiwa Blog
Viewing all articles
Browse latest Browse all 42

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

$
0
0

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 minuteclass: 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よさそう!!


Viewing all articles
Browse latest Browse all 42

Trending Articles