Ruby on rails Heroku Cron不会运行

Ruby on rails Heroku Cron不会运行,ruby-on-rails,ruby-on-rails-3,cron,heroku,crontab,Ruby On Rails,Ruby On Rails 3,Cron,Heroku,Crontab,所以,我在heroku上运行一个简单的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 com

所以,我在heroku上运行一个简单的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小时放置一次)

不知道为什么它不只是做看跌期权。而且,一旦这种方法起作用,我想经常从我的模型中调用函数。如果我的模型是Micropost,功能是has___,fun,我可以用。。。Micropost.在cron.rake中玩得开心吗

任何帮助都将不胜感激。stack overflow上的人员对我学习rails提供了难以置信的帮助。再次感谢

更新: 我将看跌期权更改为:

UserMailer.registration_confirmation().deliver

但是,这会导致相同的日志输出。我已经用actionmailer测试了多次注册确认电子邮件,它们可以使用上述功能。(电子邮件在user_mailer.rb中编码为静态。

您应该尝试rufus scheduler:

安装gem

 gem install rufus-scheduler
确保您在bundler中包含gem,或者以何种方式包含它

然后,您需要创建一个名为
task\u scheduler.rb的文件,并将其粘贴到
initializers
目录中

 require 'rufus/scheduler'
 scheduler = Rufus::Scheduler.start_new

 scheduler.every '10m' do

      puts "Test!"      
      #do something here

 end
如果您遇到任何问题,可以查看以下博文:


您应该尝试rufus scheduler:

安装gem

 gem install rufus-scheduler
确保您在bundler中包含gem,或者以何种方式包含它

然后,您需要创建一个名为
task\u scheduler.rb的文件,并将其粘贴到
initializers
目录中

 require 'rufus/scheduler'
 scheduler = Rufus::Scheduler.start_new

 scheduler.every '10m' do

      puts "Test!"      
      #do something here

 end
如果您遇到任何问题,可以查看以下博文:


不久前的Thoughtbot概述了使用RSpec、Timecop和Bourne在本地测试Heroku cron作业的方法。

不久前的Thoughtbot概述了使用RSpec、Timecop和Bourne在本地测试Heroku cron作业的方法。

谢谢Mu,是的,我将cron附加组件添加到了Heroku应用程序中,这对我来说也没问题。从外观上看g不清楚,因为时间显示有3个,它将在4、8、12、16、20和0上工作。我认为cron会立即运行,然后在这种情况下每4小时运行一次。因此,它应该在安装cron插件时立即运行。我在上面添加了一个更新。我尝试在actionmailer中发送一封带有测试电子邮件的电子邮件,但结果是相同的日志。我可能是错的关于时间的事情。请让我知道!再次感谢。heroku信息通过CLI将向您显示cron作业的上一次运行时间和下一次运行时间。感谢Mu,是的,我已将cron加载项添加到我的heroku应用程序中。对我来说,它看起来也不错。从日志中看不清楚显示的时间是3,它将在4、8、12、16、20和0上运行。我认为cron运行immedi在这种情况下,每4小时发送一次。因此,在安装cron加载项时,它应该立即运行。我在上面添加了一个更新。我尝试在actionmailer中发送一封带有测试电子邮件的电子邮件,但结果是相同的日志。我可能对小时数有误解。请让我知道!再次感谢。通过CLI发送的heroku信息将向您显示最后一次运行时d cron作业的下一次运行时间。