2016-04-13 25 views
3

Oregon bölgesinde bulunan bir EC2 örneğim var. NYCRaylar: Üretim sunucusunda (EC2 Ubuntu) saat dilimi nasıl ayarlanır?

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

Tarih: 12:51 PM sunucuda giriş yaptığınızda , aşağıdaki bakın.

Tüm komisyon görevlerim NYC zamanına göre ayarlanır. Her sabah 4AM'da çalışacak bir görev planlamıştım, ancak AWS EC2'ye geçtikten sonra bu görevler gece yarısında çalışıyor.

ben config/environments/production.rb saat dilimini ayarlamak çalıştı:
config.time_zone = 'Eastern Time (US & Canada)' 
    config.active_record.default_timezone = 'Eastern Time (US & Canada)' 

Ama görevler her gece yarısı değil 04:00 başlatılan edilmektedir sunucuyu yeniden başlattıktan sonra

.

Bundan sonraki adımlarınız ne olmalıdır?

Teşekkür ederiz.

+0

"Tüm komisyon görevlerim NYC saatine göre ayarlanır. Her sabah 4AM'de çalışacak bir görev planlamıştım, ancak AWS EC2'ye geçtikten sonra bu görevler gece yarısında çalışıyor." Görev hangi mekanizmayı planlar? cron? sidekiq? Başka bir şey? –

+0

Evet, CRON ile planlanan görevler ('doğru olduğunda ne zaman 'gem'). – user984621

cevap

1

Bu sorunla ilgili sonraki bir yorum, whenever taşının kullanıldığını gösterir. whenever politikası, saat dilimi mantığını önlemek ve size bırakmaktır.

Time.zone = "US/Eastern" 

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

Bu kod belirli anları tanımlamak için nasıl kendi anlayışı sahipken (Yayınınız öyle gösterir) UTC saat yaşamaya devam etmek için sunucuya izin veriyor: this approachwhenever.rb, ancak, yoktur saat. Yazar bu yaklaşımı desteklediğini ve bir dağıtımdan sonra crontab'ı (crontab -l) inceleyerek kendiniz doğrulayabilirsiniz. numaralı telefon numaranızın'un UTC'de olacağını unutmayın; Bu sistem kütüphanesinde Rails ortamınız veya çalışma süreniz hakkında özel bir bilgi yoktur.