2016-04-13 2 views
1

Ich benutze immer wenn Juwel und ich eine Rake-Aufgabe geschrieben haben, um E-Mails zu senden. In meinem schedule.rb wenn ich diesen CodeImmer, wenn Juwel nicht für alle 1.Tag Aufgaben funktioniert, aber für andere Argumente in Rails arbeitet

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 

ich keine E-Mails bekommen, aber wenn ich so etwas wie dieses

verwenden
every 5.minutes do 
    rake "send_daily_reports" 
end 

ich Mails für 5 Minuten alle.

versuchte ich

every :day 

mit

every 1.day 

ersetzen, aber es ist immer noch nicht funktioniert. Ich habe jeden Schritt verfolgt. Wenn ich den Code in die Cloud ziehe, benutze ich den Befehl

whenever -w 

, um die Crontab zu aktualisieren und dann den Server neu zu starten. Ich dachte, dass es ein Problem mit der Linux-Systemzeit geben könnte. Aber als ich das Datum Befehl im Terminal benutzte, bekam ich das korrekte Datum und die Zeit. Ich überprüfte auch das cron_error Protokoll aber es gibt keine protokollierten Fehler. Kann mir bitte jemand hier helfen?

+0

Was sagt 'crontab -l'? –

+0

Wie sieht send_daily_reports aus? Ist es möglich, dass es ein Zeitzonenproblem gibt, das verhindert, dass send_daily_reports um 23:20 Uhr Daten zum Melden hat? – msergeant

+1

@msergeant Ich erhielt die Post um 4.20 Uhr, als die eingestellte Zeit "11.20 Uhr" war. Also ich denke, es gab einen Fehler mit der Zeitzone Einstellung in Linux. Ich habe die Zeitzone geändert und jetzt funktioniert sie. Früher war die Standardzeitzone in Utc und ich dachte, das System würde sich automatisch entsprechend der Zeitzone einstellen. Sobald ich die Zeitzone geändert habe, funktioniert es jetzt. –

Antwort

2

Ich erhielt die Mail um 4.20 am, wenn die Zeit 11.20 pm war. Also ich denke, timezone Einstellung wurde auf utc Standard in amazon linux festgelegt.

Ich habe die timezone und nun seine Arbeits und ich bezeichnen diesen Link http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Bisher ist die Standard-Zeitzone war in utc und ich dachte, das System selbst automatisch eingestellt würde die timezone nach. Sobald ich die Zeitzone geändert habe, funktioniert es jetzt.

Verwandte Themen