1

我正在使用每当我的应用程序每 5 分钟触发一次 rake 任务。

时间表.rb:

every 5.minutes do   
rake "audit",
:environment => 'development'
end

控制台中的“无论何时”:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /Users/john/Sites/rambler && RAILS_ENV=development bundle exec rake audit --silent'

控制台中的“rake audit”工作正常。

所以一切看起来都很好....除了它不起作用。每五分钟没有任何事情发生。

这是因为我试图在开发/本地运行它吗?

谢谢!

4

2 回答 2

1

每次更改时都需要更新 cron 文件。

添加 cron 作业后,请执行以下操作:

每当 --update-crontab 'project_name'

此外,我只发现只有在生产模式下才能正常工作。

更新

我发现我们也可以whenever在开发模式下使用。只需添加

set :environment, "development"
set :output, {:error => "log/error.log", :standard => "log/cron.log"}  

到您的 scehdule.rb 文件。(日志一是可选的,但您仍然可以将其用于测试目的)

于 2013-09-03T20:46:57.947 回答
0

最后,我解决了如何运行 gem 的问题。它在生产中运行良好,但在开发模式下却不行(我认为要在开发模式下运行良好,您必须做一些技巧)。看到这个在开发模式下工作的答案:Cron not working inWhenever gem

然后,这些是要执行的过程:

  1. 安装宝石
  2. 编写你的 scheduler.rb 文件
  3. 推送到远程服务器
  4. 登录到远程服务器(例如使用 ssh)
  5. 通过在终端中运行查看是否上传好:无论何时
  6. 通过运行每当 crontab 更新:无论何时 --update-crontab
  7. 重启服务器 crontab(例如在 ubuntu 中): sudo service cron restart
  8. 检查 crontab 是否在服务器上实现良好:crontab -l

那是!

于 2012-11-07T10:09:09.947 回答