1

10分ごとに繰り返す必要のあるタスクがあります。を使用したいのですdelayed_jobが、問題に対して正しく使用する方法のチュートリアルが見つかりません。例えば

 class A
   def print
     p Time.now
   end
 end

このクラスはどこに配置すればよいですか?では、このメソッド()をどこで呼び出す必要があるprintので、10分ごとに繰り返されますか?ユーザーに依存せず、データベースのエントリに依存しません。

ありがとう。

4

2 に答える 2

2

あなたの目的は、基本的にUNIXベースのシステムのcrontabファイルのジェネレーターであるhttps://github.com/javan/wheneverのようなものをもっと求めます。

于 2012-07-09T08:58:27.760 に答える
0

リソースを節約したい場合はいつでも避けます(つまり、レールを使用します。質問にレールをタグ付けしているため)

何かをする必要があるたびに、Rails環境全体をロードするときはいつでも。単純なrubyスクリプトを実行している場合に便利です。

rufus-schedulerは使用する宝石です。

# config/initializers/chrons.rb

require 'rufus-scheduler'

scheduler = Rufus::Scheduler.new

scheduler.every '3m' do
  p Time.now  
end

処理に時間がかかるジョブ(つまり、電子メールの送信、画像の処理など)がある場合、これはdelayed_jobが必要になる場合です。

それを支援する有名なgem、delayed_job_active_record、または最近書いたgem、 delayed_job_active_record_threadedがあります。これは、プロセスの代わりにスレッドを使用します。これにより、リソースの使用量とデータベースへのアクセスを減らして、処理を高速化できます。

于 2014-01-16T13:30:53.760 に答える