想用 whenever 定时去向数据库插入数据,测试:我是这样用的:有问题,请大家指教,怎么用不起呢:
record model 里写里一个方法:
def self.whenever_add create! end
然后 whenever 任务代码: every :day, :at => '5:25pm', :roles => [:app] do runner "Records.whenever_add" end
终端,运行 whenever -iw
这样以后是不是到那个时间后就会执行代码里?但是没有运行,求指教
every 3.hours do runner "MyModel.some_process" rake "my:rake:task" command "/usr/bin/my_great_command" end
提示是 model 呢
[simlegate@simlegate yicheng-checkon]$ crontab -l
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /home/simlegate/workspace/yicheng-checkon && script/rails runner -e production '\''Record.whenever_add'\'''
结果是存在的,但是就是没有执行,是不是我还有什么没有做呢?
我也是跟 LZ 类似的问题:
schedule.rb 里我是这么写的:
set :environment, :development
every 1.minutes do
rake "terry:mail_test"
end
然后 terry.rake 文件是:
#encoding: UTF-8
namespace :terry do
desc '发邮件测试'
task :mail_test => :environment do
UserMailer.welcome_email(User.find(1)).deliver
puts "XXX"
end
end
单独在命令行里执行rake "terry:mail_test"
是没问题的,邮件收到,但我执行 whenever 就报这个:
terry@TerryUbuntu:~/RubymineProjects/EIMV5$ whenever
* * * * * /bin/bash -l -c 'cd /home/terry/RubymineProjects/EIMV5 && RAILS_ENV=development bundle exec rake terry:mail_test --silent'
## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated.
## [message] Run `whenever --help' for more options.
terry@TerryUbuntu:~/RubymineProjects/EIMV5$
我哪怕执行了一个whenever --update-crontab
也不行。求解……
好吧,是怎么执行起来的我还真不知道……似乎是重启服务似乎又不是,反正现在它正在连续发邮件中…… 关键是我理解错误,这个脚本写完后是不用“执行”的,因为这个是直接写进系统的 crontab 里了,系统自己会执行之。
楼主单独执行下面的命令看看:
script/rails runner -e production 'Record.whenever_add'
看会不会报bash: script/rails: Permission denied
应该是运行了 估计有错误
你可以查看 /var/spool/mail/root 里面是否有报错
如果你没自己设置 output 的话
我之前自己也执行过一次 我是没设环境变量 所以 rake 执行不能哈
刚刚也在做这个 我是通过执行 rake every 1.day, :at => '0:20 am' do rake "auto" end
然后 新建 rake 文件处理 model
大哥,我刚用这个,手动执行任务成功了,但是用 whenever 插件时,输出日志里报这个错 sh: bundle: command not found,是什么原因啊
大哥,我刚用这个,手动执行任务成功了,但是用 whenever 插件时,输出日志里报这个错 sh: bundle: command not found,是什么原因啊