4

这是我的计划文件中的代码。我用 1 分钟来测试它是否工作。

every 1.minutes do
  runner "User.update_all('daily_sms_count' = 0 )"
end

从终端我设置

whenever --set environment=development --update-crontab 1mintesting

什么问题?

4

1 回答 1

6

你在使用 RVM 吗?如果是这样,无论何时都会生成一个 crontab 条目,如下所示:

* * * * * /bin/bash -l -c 
'cd /Users/myuser/Documents/Projects/foo && script/rails runner -e 
development '\''User.update_all("daily_sms_count" = 0 )'\'''

这意味着它不一定会使用您项目的 Ruby 版本和相关的 gemset,因为它会衍生出一个新的 bash shell。要完成这项工作,您需要将适当.rvmrc的文件添加到项目的根文件夹中。这样,cd /Users/myuser/Documents/Projects/foo生成的 crontab 条目的一部分将确保使用适当的 RVM 设置。只需确保在添加.rvmrc文件cd..并返回项目时让 RVM 识别您项目的.rvmrc.

如果您没有使用 RVM,请运行crontab -l并复制生成的条目,然后从终端运行它以查看它是否运行时没有错误。

如果您使用的是 Mac,cron会将日志消息发送到您的邮箱,您可以使用mail命令查看它们。

如果这些技巧不起作用,请提供有关您的工作环境(操作系统、RVM 等)的更多详细信息,以便我可以为您提供更多帮助。

于 2011-08-08T12:40:30.220 回答