アプリで定期的なジョブを実行するためのcronを含むconfig/schedule.ymlファイルがあります。しかし、そのファイルをどこで/どのように初期化するのかわかりませんか?Resqueでは、resque.rakeファイルで初期化するために使用しました。
2 に答える
Sidekiqは実際には定期的な仕事のために作られていません。sidekiq github wikiページからの引用:
定期的なタスクの場合は、時計仕掛けを使用するか、システムのcronと統合してタスクをスケジュールするgemを使用することをお勧めします。
私はsidekiqを使用していません(ただし、delayed_jobのような他の同様のツールやrufus_schedulerのような純粋なrubyスケジューラー)が、cronベースではないツールの主な問題は、定期的なジョブが実際に実行され、必要な回数だけ実行されることを保証することです。乗客がいる一般的な本番環境では、すべてのルビープロセスが停止する(したがって実行がまったく行われない)か、20個のプロセスがすべて同じジョブを実行しようとすることが簡単に発生する可能性があります。
私たちは長い間、定期的なジョブを書くのが楽しく、システムにcronジョブを追加する際の面倒な作業をすべて処理するものに切り替えました。
より簡単なソリューションが本当に必要で、信頼できる実行が必要ない場合は、 rufus_schedulerがオプションです。
2018年後半には、Sidekiqを使用したcronのような(別名「定期的な」)ジョブスケジューリングのオプションがあります。
最も簡単なオプションは、この機能の公式サポートを提供するSidekiqEnterpriseに支払うことです。より安価なオプションは、https://github.com/ondrejbartas/sidekiq-cronをインストールすることです。これは(書き込みとして)積極的に維持されており、ダウンロード数は400万を超えています。