0

ある方法の直後に仕事を始めたい。それで、私は通常のrailsでアプリケーションを開始します。いくつかのものをアップロードして、createメソッドが呼び出されるようにします。メソッドの作成後、:perform_analysis-methodが遅延します。一部のデータはdelayed_jobsテーブルに挿入されます。"script/delayed_job start"通常、私はワーカーがコマンドラインに入力して作業を開始します。でも、自動的に作業を始めたいので、何も入力しません。

モデル:

after_create :perform_analysis
def perform_analysis
bla
end
handle_asynchronously :perform_analysis, :run_at => Proc.new { 5.minutes.from_now }

そこで、railsを使用してアプリケーションを実行します。wep-pageにログインします。いくつかのファイルをアップロードします。5分後にジョブが遅延します。その後、労働者は働き始める必要があります。私はこのページが私が望むことをほぼ実行しているのを見つけましたが、どういうわけか労働者はまったく始めません。したがって、schedule.rbは実行されません。そのWebページに記載されていないことをもっと行う必要がありますか?

他に可能性はありますか?

4

1 に答える 1

0

Foreman(http://ddollar.github.com/foreman/)を見て、procfileにワーカープロセスを宣言させることをお勧めします。

web: bundle exec rails s
worker:  bundle exec rake jobs:work

このように、1つのコマンドforeman startでサーバーとワーカーの両方が起動します。出力は、両方の同じウィンドウに表示されます。

于 2013-03-17T16:11:43.693 に答える