2016-04-13 8 views
1

私は宝石と私が電子メールを送信するためのレーキタスクを書きました。私schedule.rbで 私はこのコードすべての1.dayタスクでは動作しませんが、レールで他の引数で作業するときはいつでも

set :environment, "development" 
set :output, {:error => "log/cron_error_log.log", 
:standard =>"log/cron_log.log"} 

every :day, :at => '11:20pm' do 
    rake "send_daily_reports" 
end 

を使用するとき、私はメールが届かないのですが、私はこの

every 5.minutes do 
    rake "send_daily_reports" 
end 

のようなものを使用したとき、私は5分ごとのためのメールを取得します。

は私が

every 1.day 

every :day 

を交換しようとしたが、まだ動作していませんの。 私はあらゆるステップに従ってきました。私は雲の中にコードを引くと、私はcrontabのを更新し、サーバーを再起動するコマンドに

whenever -w 

を使用しています。私はLinuxシステムのtime.Butに問題があると思ったが、 の日付 コマンドをターミナルで使用したとき、正しい日付と時刻が得られた。また、cron_errorログもチェックしたが、エラーは記録されていない。誰も私をここで助けてもらえますか?

+0

'crontab -l'レポートは何ですか? –

+0

send_daily_reportsはどのようなものですか?午後11時20分にsend_daily_reportsが報告するデータを持たないようにする、ある種のタイムゾーンの問題がある可能性はありますか? – msergeant

+1

@msergeant時間が "11.20pm"だったとき、私は午前4.2時にメールを受け取った。だから私は、Linuxのタイムゾーン設定でエラーがあったと思います。私はタイムゾーンを変更し、現在はその作業を行っています。以前のデフォルトのタイムゾーンはutcで、私はシステムがタイムゾーンに従って自動的に設定されると思っていました。タイムゾーンを変更すると、今すぐ動作しています。 –

答えて

2

にメールを受信した時刻は、11.20 pmでした。だからtimezoneの設定がutcに設定されており、デフォルトでamazon linuxに設定されていると思います。

私は timezone、今その作業を変更し、私は以前はデフォルトのタイムゾーンは utcにあったと私は、システムが自動的に timezoneに応じて自分自身を設定するだろうと思った。このリンク http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

を言及しました。タイムゾーンを変更すると、今すぐ動作しています。

関連する問題