OSS Gate Workshop: Techouse: 2024-04-08: ozachun: sidekiq-cron: Work log
ozachun opened this issue · 14 comments
This is a work log of a "OSS Gate workshop".
"OSS Gate workshop" is an activity to increase OSS developers.
Here's been discussed in Japanese. Thanks.
作業ログ作成時の説明
以下のテンプレートを埋めてタイトルに設定します。埋め方例はスクロールすると見えてきます。
OSS Gate Workshop: ${LOCATION}: ${YEAR}-${MONTH}-${DAY}: ${ACCOUNT_NAME}: ${OSS_NAME}: Work log
タイトル例↓:
OSS Gate Workshop: Tokyo: 2017-01-16: kou: Rabbit: Work log
OSS Gateワークショップ関連情報
- スライド:ワークショップの進行に使っているスライドがあります。
- チャット:OSS開発に関することならなんでも相談できます。ワークショップが終わった後もオンラインで相談しながら継続的にOSSの開発に参加しましょう!
- シナリオ:ワークショップの目的・内容・進め方の詳細が書いています。
- 過去のビギナーの作業ログ:他の人の作業ログから学べることがいろいろあるはずです。
fugit に sidekiq-cron で第2月曜日みたいな書き方ができると記載があったが、今使っているsidekiq-cronでは使用できなかった。
fugitのreadmeには、最新ver.でのみ使用できるとあるが、どのバージョンから使用可能なものなのか?
fujit にて、specのテストが下記のリンクに記載されている。
https://github.com/floraison/fugit/blob/b1521eb6abc777230f4512be09fd95dc0dc72f14/spec/cron_spec.rb#L855C5-L855C62
そもそも、sidekiq を インストールして使えるようになるまでのコマンドがreadme網羅されていないのではないか?
sidekiq を 起動するコマンド
bundle exec sidekiq -q default event
sidekiqのgetting started に新しく始めた時の方法は書いてあった。
https://github.com/sidekiq/sidekiq/wiki/Getting-Started
getting start のところで、粗探しできないか調べる
https://github.com/sidekiq/sidekiq/wiki/Getting-Started
使用しているバージョンは下記
2024-04-18T03:23:01.718Z pid=55527 tid=129j INFO: Booted Rails 7.0.7 application in development environment
2024-04-18T03:23:01.718Z pid=55527 tid=129j INFO: Running in ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
2024-04-18T03:23:01.718Z pid=55527 tid=129j INFO: Sidekiq Pro 5.5.8 / Sidekiq Enterprise 2.5.3, commercially licensed.
fujitの readme
https://github.com/floraison/fugit
fugitはsidekiqのwrapperなので、第二月曜日の指定は、fugit側でextensionとしてサポートしているのではないか?
fugit側でも検証するのが良さそう
require 'fugit'
p Fugit.parse('every day at 12am').original # ==> "0 0 * * *"
p Fugit.parse('every day at 12pm').original # ==> "0 12 * * *"
p Fugit.parse('every day at 12:00am').original # ==> "0 0 * * *"
p Fugit.parse('every day at 12:00pm').original # ==> "0 12 * * *"
p Fugit.parse('every day at 12:00 am').original # ==> "0 0 * * *"
p Fugit.parse('every day at 12:00 pm').original # ==> "0 12 * * *"
p Fugit.parse('every day at 12:15am').original # ==> "15 0 * * *"
p Fugit.parse('every day at 12:15pm').original # ==> "15 12 * * *"
p Fugit.parse('every day at 12:15 am').original # ==> "15 0 * * *"
p Fugit.parse('every day at 12:15 pm').original # ==> "15 12 * * *"
p Fugit.parse('every day at 12 noon').original # ==> "0 12 * * *"
p Fugit.parse('every day at 12 midnight').original # ==> "0 24 * * *"
p Fugit.parse('every day at 12:00 noon').original # ==> "0 12 * * *"
p Fugit.parse('every day at 12:00 midnight').original # ==> "0 24 * * *"
p Fugit.parse('every day at 12:15 noon').original # ==> "15 12 * * *"
p Fugit.parse('every day at 12:15 midnight').original # ==> "15 24 * * *"
# as of fugit 1.7.2
ヒントになりそう
問題点
https://github.com/floraison/fugit?tab=readme-ov-file に記載の「Related projects」の「Similar, sometimes overlapping projects」の sidekiq-cron - recent versions of Sidekiq-Cron use fugit to parse cron strings
上記記載にて、sidekiq-cornの最新バージョンで利用可能と書いてあるが、どのバージョンから利用できるのか?記載されていない。
期待値
どのsidekiq-cornのバージョンから利用可能なのか記載されていること
実際どうだったか
Booted Rails 7.0.7, Running in ruby 3.2.2, Sidekiq Pro 5.5.8 / Sidekiq Enterprise 2.5.3の場合、[0 5 * * mon#1]のように記載しても動作しなかった。
Sidekiq Pro 5.5.8 / Sidekiq Enterprise 2.5.3のバージョンにて、問題点を確認しました。他のバージョンでは確認していません。
Issue description
Stated in https://github.com/floraison/fugit?tab=readme-ov-file "Related projects - Similar, sometimes overlapping projects" of sidekiq-cron - recent versions of Sidekiq-Cron use fugit to parse cron strings
In the above description, it says that it is available in the recent versions of Sidekiq-Corn, but from which version is it available? Not stated.
How to reproduce
version
Booted Rails 7.0.7, Running in ruby 3.2.2, Sidekiq Pro 5.5.8 / Sidekiq Enterprise 2.5.3
The simplest piece of code that reproduces the issue, for example:
config.periodic do |cron|
cron.register('0 5 * * mon#1', SampleWorker', 'args' => [])
end
bundle exec rails c
> SampleWorker.perform_async()
Even though version of Sidekiq Pro 5.5.8 / Sidekiq Enterprise 2.5.3 is old.
Executed, but did not run at the specified time.
I found out that the version of sidekiq-corn I was using was out of date.
Expected behaviour
In "Projects using fugit". Describe which version is executable.
おつかれさまでした!
ワークショップの終了にともないissueを閉じますが、このまま作業メモとして使っても構いません 👌
ワークショップの感想を集めています!
ブログなどに書かれた際は、このページへリンクの追加をお願いします 🙏
またの参加をお待ちしています!