Итак, я запускаю простую задачу cron на героку. Однако это не работает. Я продолжаю получать это в журнале:
2011-06-15T03:21:35+00:00 heroku[web.1]: State changed from up to bouncing
2011-06-15T03:21:35+00:00 heroku[web.1]: State changed from created to starting
2011-06-15T03:21:35+00:00 heroku[slugc]: Slug compilation finished
2011-06-15T03:21:41+00:00 heroku[web.1]: Starting process with command: `thin -p 5926 -e production -R /home/heroku_rack/heroku.ru start`
2011-06-15T03:21:46+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-06-15T03:21:46+00:00 app[web.1]: >> Maximum connections set to 1024
2011-06-15T03:21:46+00:00 app[web.1]: >> Listening on 0.0.0.0:5926, CTRL+C to stop
2011-06-15T03:21:47+00:00 heroku[web.1]: State changed from starting to up
2011-06-15T03:22:30+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-06-15T03:22:30+00:00 app[web.1]: >> Stopping ...
2011-06-15T03:22:30+00:00 heroku[web.1]: Process exited
Мой файл cron.rake (просто ставит каждые 4 часа)
desc "This task is called by the Heroku cron add-on"
task :cron => :environment do
if Time.now.hour % 4 == 0 # run every four hours
puts "Sending email of most popular post."
puts "done."
end
end
Не уверен, почему бы просто не сделать путы. Кроме того, как только это сработает, я хочу время от времени вызывать функции из своих моделей. Если бы моя модель была Micropost, а функция была has_fun, мог бы я вызвать ее с... Micropost.has_fun в cron.rake?
Любая помощь будет более чем оценена. Люди, занимающиеся переполнением стека, оказали мне невероятную помощь в изучении рельсов. Еще раз спасибо.
Обновление: я изменил путы на:
UserMailer.registration_confirmation().deliver
Однако это приводит к тому же выходу журнала. Я несколько раз тестировал электронные письма с подтверждением регистрации с помощью actionmailer, и они работают с вышеуказанной функцией. (электронная почта закодирована как статическая в файле user_mailer.rb.