У меня есть приложение ruby on rails (1.9.2 и 3.2), работающее на Heroku с Redis / Resque, которое требует, чтобы задача rake ставилась в очередь через регулярные промежутки времени.Прямо сейчас я запускаю 'heroku run rake update_listings' с моей локальной машины один или два раза в день .... Я хотел бы автоматизировать это.Я пробовал драгоценный камень всякий раз, когда задача не запускалась в фоновом режиме.Планировщик Heroku кажется подходящим решением, но меня смущает файл scheduler.rb.У меня есть:
desc "This task is called by the Heroku scheduler add-on"
task :hourly_feed => :environment do
Rake::Task[update_listings].execute
end
Когда я запустил задачу: hourly_feed из консоли Heroku Scheduler и проверил логи heroku, я увидел, как несколько веб-дин закручивались с помощью hirefireapp, но грабли update_listings никогда не вызывались.
Обновление: я отказался от resque_scheduler.Я слишком зеленый, чтобы заставить это работать, поэтому пытаюсь использовать crontab и файл сценария.Вот мой файл сценария update.sh:
Rake::Task["update_listings"].execute
Я устанавливаю cron с помощью crontab-e, и он выполняется каждые 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