1

これを行うためのいくつかの解決策を見てきました:

  1. Redis / Resque
  2. 遅延ジョブ
  3. Heroku スケジューラ
  4. クロックワーク

Heroku スケジューラはランダムな時間に実行され、最も頻繁に 10 分に 1 回しか実行されないため、機能しません。

シダーで実行しています。複数の Web dyno の実行。

編集:これが私がやりたいことです:
将来の任意の時点でparamsを使用して任意のメソッドを呼び出します。何かのようなものSchedule.set(Notification.send_update_to_user(574), Time.now + 1.days)

4

3 に答える 3

3

あなたの例に適した他のオプションがいくつかありますが、私は Sidekiq を選択します。Sidekiq を使用すると、将来の任意の時間にジョブを実行するようにスケジュールできます。

NotificationUpdateWorker.perform_at(Time.now + 1.day, 574)

遅延拡張機能を使用すると、代わりに次のように記述できます。

Notification.delay_for(1.day).send_update_to_user(574)
于 2012-09-21T13:32:51.170 に答える
1

rufus/スケジューラーで試してください。

'rubygems' が必要 'rufus/scheduler' が必要

scheduler = Rufus::Scheduler.start_new

scheduler.every '1m' do
Checkin.check_checkin()
end

于 2012-09-21T05:12:57.073 に答える
0

さまざまなオプションを検討した後、Heroku で十分に文書化されている Delayed Job を選択しました。

毎日、または 1 時間に 1 回、特定の時間に実行する必要があるジョブの場合、Heroku スケジューラはうまく機能しますが、実行されない場合もあります。

于 2012-10-20T20:39:12.177 に答える