0

私はいつでも宝石をレールで使用しています。何らかの理由で、最初の cronjob が機能しません。コマンドをコピーしてシェルに手動で貼り付けると、正常に機能します。

2 番目の「touch testing123.txt」も問題なく動作します。

GiftPackage.do_scheduled_deliveries レール メソッドが実行されない理由がわかりません。私は今本当に途方に暮れています..どんな助けでも大歓迎です!

# Begin Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && script/rails runner -e staging '\''GiftPackage.do_scheduled_deliveries'\'''
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && touch testing123.txt'
# End Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb

ありがとう!:)

4

2 に答える 2

0

ジョブの前にPATH変数を設定してみてください。cronはおそらくrubyを見つけることができません。

例えば ​​:

PATH=/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/$
# Begin Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && script/rails runner -e staging '\''GiftPackage.do_scheduled_deliveries'\'''
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && touch testing123.txt'
# End Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb
于 2013-02-01T00:16:31.603 に答える
0

ほとんどの場合、アプリ自体でエラーが発生しています。

最初のステップは、ステージング環境を使用してコンソールでタスクを実行することです。

2 つ目は、cron ログをチェックして、エラーが出力されているかどうかを確認することです。

次の行を schedule.rb ファイルに追加することで、いつ出力をログに記録するかを設定できます。

set :output, "/[path to log]/cron.log"

これは、解決策を見つけることに近づくのに役立ちます。

于 2013-02-01T00:09:54.097 に答える