簡體   English   中英

來自Crontab的Rake Task?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM