2011-11-12 4 views
1

私は、遅延ジョブを実行しているHerokuのアプリを持っています。しかし、現時点では私はターミナルコマンドを実行するジョブキューを開始する必要があります。あなたはいつも英雄の仕事を遅らせていますか?

heroku rake jobs:work 

を...しかし、これは私が私の端末をシャットダウンすると、アプリの遅れジョブキューがあまりにもシャットダウンすることを意味します。

私はHerokuがちょうど常に起動し、アプリが起動したときにバックグラウンドで遅延ジョブを実行する方法がありますか?毎回コマンドを実行する必要はなく、ターミナルシェルに直接リンクさせる必要はありません。

ありがとうございました。

編集:

これは竹の上にあります。作業員を譲歩したり、レイジョブを実行したりすると、遅延したジョブがしばらく実行されますが、キューは処理が停止するようです。遅延ジョブキューにエラーはなく、ワーカーはジョブの処理を停止します。 5分または10分ごとに明示的に再起動する必要があります。 Herokuののアスペンや竹スタック上

答えて

1

間違ったレーキの宝石を使用していました。

以下は、Herokuの上レール3の問題を引き起こしていた:宝石の更新

gem 'rake', '0.9.2' 

は、エラーがログに存在していなかったにもかかわらず、問題を修正:

gem "rake", "0.8.7" 
4

From the docs:

、シーダースタック上heroku workers 1

を使用し、あなたのProcfileにこのラインを置く:そして

worker: bundle exec rake jobs:work 

とはheroku scale worker=1を行います。

+0

私は余分を持っています作業者は常時稼働していますが、ターミナルでコマンドを実行しないとジョブが開始されないようです。それは竹の上にあります。 – Smickie

2

私たちはherokuスタックでworkless gemを使用します。 delayed_jobキューが0より大きくなると作業者が起動し、delayed_jobキューが0になると作業者は終了します。

関連する問題