[英]Rake Task from 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
我可以看到cron守護程序在cron日志中運行此任務,但它應該將記錄拉入的數據庫表不會更改。 當我在/ var / www / apps / my_app / current目錄中手動運行它時,此任務正常運行,並將記錄拉入表中,如我所料。
我重置了crontab中的PATH變量以反映使用REE,認為可能默認路徑不會與/ opt / ruby-enterprise一起生成...
如何讓這個rake任務實際與cron一起運行?
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'
嘗試使用完整路徑來搜索二進制文件(在控制台which rake
運行which rake
並用完整路徑替換rake)。
例如,如果which rake
返回以下路徑:
/Users/bob/.rvm/gems/ruby-1.9.3-p194/bin/rake
您應該使用以下命令來運行rake任務:
/Users/bob/.rvm/bin/rvm all do bundle exec rake allocator:snapshot
而且我喜歡ruby中的cron工作的寶石
如何檢測cron中的任務是否失敗? 失敗時,cron嘗試發送電子郵件。 因此,您可以配置postfix以使用您的smtp設置(例如來自Google),並將僅包含您的電子郵件的文件~/.forward
添加到系統中運行該cronjob的用戶的主目錄中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.