7

https://devcenter.heroku.com/articles/queuing-ruby-resqueのチュートリアルに従って、Railsアプリでバックグラウンドジョブをキューに入れて実行しました。ジョブをキューに入れた後、コンソールでジョブが処理されていないことがわかるため、どのジョブも実行されていないようです。

>Resque.info
=> {:pending=>1, :processed=>0, :queues=>1, :workers=>0, :working=>0, :failed=>0, :servers=>["redis://dory.redistogo.com:9826/0"], :environment=>"production"}

私が(ローカルで)やろうとすると

bundle exec rake jobs:work

私は得る

rake aborted!
Don't know how to build task 'jobs:work'

Herokuで、試してみると

heroku run rake jobs:work

もう一度「タスクの作成方法がわからない」というメッセージが表示されます

私のRakefileには、私は持っrequire 'resque/tasks'ています。

resque: env TERM_CHILD=1 bundle exec rake jobs:work
resque: env TERM_CHILD=1 bundle exec rake jobs:work

GemfileにResqueとredisのgemがありますが、delayed_jobはありません。

更新: これが私のRakefileです:

#!/usr/bin/env rake
require File.expand_path('../config/application', __FILE__)
Guard::Application.load_tasks

/lib/tasks空です。コントローラーにエンキューしているアプリ/ワーカーにワーカーがいます。

4

3 に答える 3

6

ローカルで動作しない場合、これは Heroku とは何の関係もないようです。人々があなたを助けてくれるようにするには、ソースの一部を明らかにする必要があります。たとえば、あなたの Rakefile はどのようなものですか? その記事のデモ アプリでは、Rake タスクとタスクを使用して 1 つを定義しています。rake タスクを定義し、適切な gem 参照を追加しましたか?

于 2013-02-09T14:51:57.470 に答える
1

resque:work代わりに試してみてjobs:work、それが望ましい結果かどうかを確認してください。

于 2013-02-09T09:33:32.950 に答える