5

HerokuのアプリにResque-Schedulerを追加しています

だから...私は1人だけで、スケジューラーとして機能する別個のワーカーと、多くの人が仕事をする必要があります。

これが私がやった方法です。
私は、24時間年中無休で実行されている1人のresque-schedulerワーカーを持ち、「離れた」メインアプリのRedisDBにResqueタスクを追加する別個のHerokuアプリを持っています。

(私は、jobs:workタスクをresque:schedulerまたはresque:workにマッピングします)

これは、Herokuのプラットフォームでそれを行うための最良の方法ですか; または私はそれを完全に間違っていますか?

ありがとう !

編集:Herokuでスケジュールするための最小限のアプリ:http: //github.com/clmntlxndr/heroku-scheduler

更新:HerokuとProcfilesの新しいCEDARスタックを使用すると、ワーカーごとに個別のタスクを開始できます。

web:        bundle exec rails server -p $PORT
scheduler:  bundle exec rake resque:scheduler
worker:     bundle exec rake jobs:work

http://devcenter.heroku.com/articles/procfile

4

1 に答える 1

3

私はあなたの質問を初めて読み違えたと思います。スケジューラーが別のレーキタスクを必要とする部分を見逃しました。

はい、それを行う唯一の方法は、2つの別々のherokuアプリを用意することだと思います。これは、herokuワーカーが実行されるだけでrake jobs:work、おそらくこれをresquerakeタスクの1つにしかマップできないためです。

あなたはこれを試すことができます:

desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => ["resque:work", "resque:scheduler"]

しかし、Herokuがワーカーのプロセスなどを監視する方法で実際に正しく機能することについては、私は心から疑問を持っています。また、そこでrake構文を再確認してください。それはただの記憶からです。ただし、複数の依存関係を指定することは可能です。

于 2010-10-02T01:09:00.497 に答える