0

アプリケーションの一部のプロセスにdelayed_jobを使用しています。効果がなく、その場でコードを実行します。以下はコードです。

Module1::some_definition(param).delay(priority=>3, :run_at=>2.minutes.from_now)

私はそれを間違った方法でやっていますか?

更新: これは、dimitko によって提案された私が行ったことです。しかし、それでもエラーが発生します。

class User < ActiveRecord::Base
  def do_something
      #Google is my module and the do_some_process is definition.
      Google.delay.do_some_process
  end
end
4

2 に答える 2

0

アイデアは.delay、呼び出したい実際のジョブメソッドでチェーンすることです。

class User < ActiveRecord::Base
  def do_something
  # ... do something long which you want to be in the background...
  end
end

このコードを遅らせる「適切な」方法は次のdelayed_jobとおりです。

User.current.delay(priority=>3, :run_at=>2.minutes.from_now).do_something

サンプルコードが示唆するように、モジュールにメソッドdelayed_jobを挿入することを意図しているとは思いません。.delay

于 2012-09-01T15:36:04.750 に答える
-1

Cron ジョブの設定を試すこともできます。私は通常、rake タスクを作成し、Cron ジョブを使用してそれを実行します。

ありがとう

于 2012-09-01T15:44:29.403 に答える