自分用の書き方メモです。
:schedule:
push_line:
cron: '* * 12 * * *'
class: PushLineJob
- 上記のようにconfig/sidekiq.ymlに定期処理をしたいものを書きますが、cronで時間指定をする際の書き方がよくわからなかったのでメモしておきます。
cronを用いた書き方の説明
- cronでは基本的に*を5つ用いて時間を表します。
- 左から、分・時・日・月・年で時間を指定して指定日時になったらシステムを動かすというような形で予約できます。
sidekiqschedulerの場合
- sidekiqschedulerの場合は*が6つあります。
- 最初は何を表しているかわからなかったのですが、公式のGitHubで「一番左は秒だよ」と書いてありました。
- そのため左から、秒・分・時・日・月・年を表しています。
注意点
- ここまででsidekiqschdulerの時間の指定は大丈夫でしょう。
- 最後に、Railsの時間設定を共通時刻から日本時間に直すのを忘れないようにしましょう。
- 時の指定あたりから直し忘れるとあたふたします。
- 5分ごとに繰り返し処理のような場合は以下のようにしましょう。
cron: '0 0/5 * * * *'
ちなみにこう書くと5分ごとに無限に処理が繰り返されました...
cron: '* */5 * * * *'
秒数を指定してないので、5分の間は処理を繰り返すという意味になっているからのようです。
参考記事
https://www.yoheim.net/blog.php?q=20190902
https://zenn.dev/yoiyoicho/articles/538af41a66867d