我在Rails應用程序(1.9.2和3.2)上使用Redis/Resque在Heroku上運行ruby需要一個rake任務定期入隊。現在我正在從本地機器上運行'heroku run rake update_listings',每天一次或兩次....我想自動執行此操作。我嘗試過每當寶石,但任務不會在後臺啓動。 Heroku調度程序看起來是合適的解決方案,但是我被scheduler.rb文件弄糊塗了。我有:Heroku scheduler 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中-E設置cron和我有它每5分鐘執行一次,但我在郵件日誌中收到一個錯誤:
Projects/livebytransit/update.sh: line 1: Rake::Task[update_listings].execute: command not found
看樣子它找到我的update.sh腳本文件並閱讀它,但它不執行代碼。我注意到日誌條目刪除了引號,所以我也嘗試在shell腳本文件中使用單引號,沒有改變。我也試圖改變update.sh這樣:
heroku run rake update_listings
錯誤回來heroku: command not found
謝謝,我更新了我遇到的一些問題,並嘗試使用crontab解決方案。 – tbone 2012-07-15 23:26:57
你的procifle設置如何做到這一點@TomDunning http://stackoverflow.com/questions/41537142/heroku-procfile-resque-puma-rails-5-resque-scheduler-setup – 2017-01-08 20:19:36
@chrishough,做什麼?執行調度程序?這是resque_scheduler gem的一部分 – TomDunning 2017-01-09 10:33:30