2016-04-13 5 views
3

私はオレゴン地域にあるEC2インスタンスを持っています。 NYCでRails:プロダクションサーバ(EC2 Ubuntu)でタイムゾーンを正しく設定する方法は?

System information as of Wed Apr 13 04:13:49 UTC 2016 

現在時刻:12:51私は、サーバーにログインすると は、私は以下を参照してください。

すべてのレーキタスクはNYCの時間に基づいて設定されています。私は毎朝午前4時に実行されるタスクを予定していましたが、AWS EC2に移行した後、このタスクは深夜に実行されています。

私はconfig/environments/production.rbにタイムゾーンを設定しようとしました:

config.time_zone = 'Eastern Time (US & Canada)' 
    config.active_record.default_timezone = 'Eastern Time (US & Canada)' 

をしかし、たとえ、サーバーを再起動した後の作業は、すべての深夜、ない4AMを発売しています。

私の次のステップは何ですか?

ありがとうございます。

+0

"私のすべてのレーキタスクはNYC時間に基づいて設定されています。毎朝4AMで実行されるタスクをスケジュールしましたが、AWS EC2に移行した後、このタスクは深夜に実行されます。どのようなメカニズムがタスクをスケジュールしていますか? cron?サイドキック?他に何か? –

+0

はい、CRONでスケジュールされたタスク( 'いつでも' gemが正確であること)。 – user984621

答えて

1

この問題に関する次のコメントは、whenever gemが使用されていることを示しています。 wheneverのポリシーはタイムゾーンのロジックを避け、それをあなたに任せています。 this approachwhenever.rbに、しかし、があります。

Time.zone = "US/Eastern" 

every 1.day, :at => Time.zone.parse('4:30 am').utc do 
    command 'echo hello' 
end 

これはあなたのコードは、上の特定の瞬間を記述するためにどのように独自の概念を持っていながら、あなたのサーバが(あなたのポストはそれがない示している)UTC時間に生きることを続けることができますクロック。作者は、彼がこのアプローチを好むことを示しています。展開後にcrontab(crontab -l)を調べることで、自分で確認できます。あなたのcrontab がUTCになることに注意することが重要です。このシステムライブラリには、Rails環境やランタイムに関する特別な知識はありません。

関連する問題