0

現在、Heroku のスケジューラを使用してスクリプトを実行しています。ただし、スクリプトの実行にかかる時間は、数ミリ秒から数分に増加します。このプロセスを Worker Dyno にプッシュするために、delayed_job gem を使用することを考えています。このスクリプトを 1 日 1 回実行し続け、ワーカーにオフロードするだけです。私の現在のレーキタスクは次のとおりです。

desc "This task updates some stuff for you."
task :update_some_stuff => :environment do
  puts "Updating some stuff ..."
  SomeClass.new.process
  puts "... done."
end

gem がインストールされ、移行が実行され、worker dyno が開始されたら、スクリプトを次のように変更するだけで済みます。

 desc "This task updates some stuff for you."
    task :update_some_stuff => :environment do
      puts "Updating some stuff ..."
      SomeClass.new.delay.process
      puts "... done."
    end

このタスクはまだ Heroku のスケジューラによってスケジュールされた rake タスクですが、ここで行う必要があるのは、delayこれを Worker のキューに入れるメソッドの導入だけですか?

助けてくれてありがとう。

4

1 に答える 1

0

delayed_jobsはい、DJ は非常にシンプルな gem であり、データベースのテーブルにレコードを追加することで、これがローカルで正しく機能していることを確認できるはずです。Heroku で実行されているワーカーでは、すべて問題ないはずです。

Procfile に次のものが含まれていることを確認してください。

worker:  bundle exec rake jobs:work

詳細については、https ://devcenter.heroku.com/articles/delayed-job をご覧ください。

于 2012-12-12T22:18:20.523 に答える