【发布时间】:2018-05-25 20:14:28
【问题描述】:
我在让whenever 在我的本地开发环境中工作时遇到了一些麻烦。我正在使用mac OS 10.12、ruby 2.4、rails 5.1 和whenever 0.10.0。
我的schedule.rb 文件设置为:
set :environment, "development"
set :job_template, "TZ=\"America/Los_Angeles\" bash -l -c ':job'"
set :output, Whenever.path + "/log/cron.log"
every 5.minutes do
runner "Test.new.run"
command "/bin/echo 'Is this working?'"
end
crontab -l 输出以下内容:
# Begin Whenever generated tasks for: /Users/me/apps/Test/config/schedule.rb at: 2018-05-25 12:59:14 -0700
0,5,10,15,20,25,30,35,40,45,50,55 * * * * TZ="America/Los_Angeles" bash -l -c 'cd /Users/me/apps/Test && bundle exec bin/rails runner -e development '\''Test.new.run'\'' >> /Users/me/apps/Test/log/cron.log 2>&1'
0,5,10,15,20,25,30,35,40,45,50,55 * * * * TZ="America/Los_Angeles" bash -l -c '/bin/echo '\''Is this working?'\'' >> /Users/me/apps/Test/log/cron.log 2>&1'
# End Whenever generated tasks for: /Users/me/apps/Test/config/schedule.rb at: 2018-05-25 12:59:14 -0700
当我在终端中运行mail 命令时收到以下信息:
Message 1:
From me@box.local Fri May 25 13:00:01 2018
X-Original-To: me
Delivered-To: me@box.local
From: me@box.local (Cron Daemon)
To: me@box.local
Subject: Cron <me@box> TZ="America/Los_Angeles" bash -l -c '/bin/echo '\''Is this working?'\'' >> /Users/me/apps/Test/log/cron.log 2>&1'
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=me>
X-Cron-Env: <USER=me>
X-Cron-Env: <HOME=/Users/me>
Date: Fri, 25 May 2018 13:00:00 -0700 (PDT)
但是,我没有看到cron.log 的任何输出,数据库也没有反映来自Test.new.run 的任何活动
不太确定我做错了什么......
【问题讨论】:
-
Test.new.run是做什么的?难不成它没什么可告诉你的? -
它发送一封电子邮件并将记录保存到数据库。我已经在
console中测试过它运行正常。 -
Rails 控制台具有特殊设置,可将数据库查询复制到终端会话以及 ${RAILS_ENV}.log 文件。尝试检查您的应用程序日志中是否有从 cron 作业开始的查询。
-
我不应该至少看到
cron.log文件中的回声吗? -
是的,你是对的。你应该。
标签: ruby-on-rails ruby cron whenever