【发布时间】:2011-12-29 01:32:08
【问题描述】:
我正在尝试迁移到 Heroku Scheduler 插件,(博文:http://blog.heroku.com/archives/2011/11/12/heroku_scheduler_add_on_now_available/,开发中心:http://devcenter.heroku.com/articles/scheduler)
Rails 3.1 应用程序。我在 lib/tasks 中设置了 scheduler.rake 文件,如果我运行:
heroku rake processtats_main
我的进程运行完美。
在我添加的调度程序插件仪表板中
rake processtats_main
并将其设置为 10 分钟(通常它是每小时运行的任务,但这仅用于测试),在 web ui 中,它每十分钟更新一次上次运行时间,但它没有运行任务,或正在运行任务以某种方式失败。
我无法按“运行”按钮运行它,它建议我通过命令行来运行它(是通过运行上面的 heroku rake 命令吗?因为它工作正常)。令人沮丧的是,在“运行”单击失败后刷新页面后,上次运行时更新。如果您设置了一个名为“diofgjsfdoigjsdi”的任务并单击运行,则上次运行时间将更新,大概是因为调度程序可用于执行任何类型的命令,所以它正在尝试。但是没有记录失败,所以如果我认为我的语法正确,我不确定如何调试。
仪表板上没有任务输出。
日志中没有任何内容表明任何工作进程或其他任何内容。根本没有日志活动。 (不是实时应用,所以如果我不访问它,任何地方的人都不太可能访问它。)我的 rake 任务如下所示:
task :processtats_main => :environment do
puts "Begin Widget.statsUpdate(1)"
Widget.statsUpdate(1)
puts "Widget.statsUpdate(1) done."
end
因此,它至少应该将“puts”消息放入日志中。
我禁用了 cron 插件,以防它以某种方式干扰。
如果我运行 heroku ps,我看不到与我的工作相关的进程。
有什么想法吗?我只是没有看到任何明显的下一步尝试。
【问题讨论】:
-
与 :environment 有关系吗?它是否期望某个环境/配置变量?我正在抓住稻草......
-
我有一个支持,我也遇到了这个问题。收到回复后会在此处更新。
标签: ruby-on-rails heroku scheduled-tasks