10分ごとに繰り返す必要のあるタスクがあります。を使用したいのですdelayed_job
が、問題に対して正しく使用する方法のチュートリアルが見つかりません。例えば
class A
def print
p Time.now
end
end
このクラスはどこに配置すればよいですか?では、このメソッド()をどこで呼び出す必要があるprint
ので、10分ごとに繰り返されますか?ユーザーに依存せず、データベースのエントリに依存しません。
ありがとう。
10分ごとに繰り返す必要のあるタスクがあります。を使用したいのですdelayed_job
が、問題に対して正しく使用する方法のチュートリアルが見つかりません。例えば
class A
def print
p Time.now
end
end
このクラスはどこに配置すればよいですか?では、このメソッド()をどこで呼び出す必要があるprint
ので、10分ごとに繰り返されますか?ユーザーに依存せず、データベースのエントリに依存しません。
ありがとう。
あなたの目的は、基本的にUNIXベースのシステムのcrontabファイルのジェネレーターであるhttps://github.com/javan/wheneverのようなものをもっと求めます。
リソースを節約したい場合はいつでも避けます(つまり、レールを使用します。質問にレールをタグ付けしているため)
何かをする必要があるたびに、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があります。これは、プロセスの代わりにスレッドを使用します。これにより、リソースの使用量とデータベースへのアクセスを減らして、処理を高速化できます。