1

resque-scheduler を使用してユーザーの入力に基づいて動的 cron ジョブを set_schedule すると、スケジュールが設定されているように見えますが、ワーカーは実際には設定されたスケジュールで開始されません。

Resque 構成では、dynamic は次のように true に設定されています: Resque::Scheduler.dynamic = true そして、次のようにスケジュールを設定しています:

  name = business.name + '_employee_import'
  config = {}
  config[:class] = 'ImporterWorker'
  config[:args] = business.id.to_s
  config[:cron] = cron_converter
  config[:persist] = true
  Resque.set_schedule(name, config) 

コマンドラインで行う場合:

  Resque.get_schedule("business_employee_import") 

私は得る:

  {"class"=>"MyWorker", "args"=>"87", "cron"=>"19 18 * * * *"}

しかし、午後 6 時 19 分にワーカーが起動しません。ワーカーを実行していますが、ジョブが取得されず、トラブルシューティングの理由や方法がわかりません。これはうまくいくはずです。また、resque-scheduler を最新リリースに更新しようとしましたが、まだうまくいきません。

高度なヘルプをありがとう。

4

3 に答える 3

5

DYNAMIC_SCHEDULE環境変数を に設定してスケジューラを起動するのを忘れた可能性がありますtrue

スケジューラを起動するために使用するコマンドは次のとおりです。

DYNAMIC_SCHEDULE=true rake resque:scheduler

README からの引用:

DYNAMIC_SCHEDULE - 空でない場合、動的スケジューリングを有効にします (デフォルトは false)。

于 2014-03-20T16:30:33.827 に答える
0

キュー タスクが実行されていることを確認します。したがって、スケジュールされたタスクはキューによって取得されます。

QUEUE=* rake resque:work

cronジョブを設定し、そのコマンドを発行した後に再試行してください

于 2014-03-18T01:42:35.150 に答える