私は定期的な間隔でレークタスクをエンキューする必要がある、Redis/ResqueでHeroku上で実行されているRuby on Railsアプリケーション(1.9.2および3.2)を使用しています。今は私のローカルマシンから「heroku run rake update_listings」を1日に1回または2回実行しています....私はこれを自動化したいと思います。私はいつもの宝石を試しましたが、仕事はバックグラウンドで始まらないでしょう。 Herokuスケジューラーは適切なソリューションのようですが、私はscheduler.rbファイルに混乱しています。私が持っている:私は走ったときHerokuスケジューラResque
desc "This task is called by the Heroku scheduler add-on"
task :hourly_feed => :environment do
Rake::Task[update_listings].execute
end
:Herokuのスケジューラコンソールからhourly_feedタスクをし、Herokuのログをチェックし、私はいくつかのウェブdynosがhirefireappによってスピンアップ、しかしupdate_listingsは、タスクが呼び出されることはなかった熊手ます見ました。
更新:私はresque_schedulerをあきらめました。私はこの仕事をするには緑すぎるので、crontabとsriptファイルを使用しようとしています。ここに私のupdate.shスクリプトファイルは次のとおりです。
Rake::Task["update_listings"].execute
私はcrontabのメールを使用してのcronを設定し、私はそれは5分ごとに実行してきたが、私は、メールログにエラーが発生します。
Projects/livebytransit/update.sh: line 1: Rake::Task[update_listings].execute: command not found
それが表示されます私のupdate.shスクリプトファイルを見つけてそれを読んでいますが、コードを実行していません。私はログエントリが引用符を削除したことに気づいたので、シェルスクリプトファイルでシングルクォートを使用してみました。変更はありません。私はまた、これにupdate.shを変更してみました:
heroku run rake update_listings
エラーがheroku: command not found
ありがとう、私はcrontabソリューションを試してみたいくつかの問題で私の質問を更新しました。 – tbone
あなたのprocifleセットアップはこれをどうやって行うのですか?@TomDunning http://stackoverflow.com/questions/41537142/heroku-procfile-resque-puma-rails-5-resque-scheduler-setup –
@chrishough、何をするには?スケジューラを実行しますか?これはresque_scheduler gemの一部です – TomDunning