mcm*_*ney 7 ruby cron rake ruby-on-rails crontab
堆:
的Apache2
Rails 2.3.8
RedHat Linux
Ruby Enterprise 1.8.7
在我的应用程序用户的crontab中获得了以下rake任务,这意味着每15分钟将记录拉入数据库表:
*/15 * * * * app_user cd /var/www/apps/my_app/current/ && rake thing:do_stuff RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)
我可以看到cron守护程序在cron日志中运行此任务,但它应该将记录拉入的数据库表不会更改.当我在/ var/www/apps/my_app/current目录中手动运行它时,此任务正常运行,并将记录拉入表中,如我所料.
我重置了crontab中的PATH变量以反映使用REE,认为可能默认路径不会与/ opt/ruby-enterprise一起生成...
如何让这个rake任务实际与cron一起运行?
NAR*_*KOZ 10
0,15,30,45 * * * * /bin/bash -l -c 'cd /var/www/apps/my_app/current && RAILS_ENV=production bundle exec rake thing:do_stuff --silent'
Run Code Online (Sandbox Code Playgroud)
尝试使用完整路径来搜索二进制文件(在控制台中运行which rake并用完整路径替换rake).
例如,如果which rake返回以下路径:
/Users/bob/.rvm/gems/ruby-1.9.3-p194/bin/rake
Run Code Online (Sandbox Code Playgroud)
您应该使用以下命令来运行rake任务:
/Users/bob/.rvm/bin/rvm all do bundle exec rake allocator:snapshot
Run Code Online (Sandbox Code Playgroud)
而且我喜欢ruby中的cron工作的宝石
如何检测cron中的任务是否失败?失败时,cron尝试发送电子邮件.因此,您可以配置postfix以使用您的smtp设置(例如来自Google),并将~/.forward仅包含您的电子邮件的文件添加到系统中运行该cronjob的用户的主目录中.
| 归档时间: |
|
| 查看次数: |
5774 次 |
| 最近记录: |