Bazı kullanıcı görevlerini zaman aşımına uğratmak için koşulların yerine getirilip getirilmediğini kontrol etmek için her dakika Heroku'da bir görev yürütmek istiyorum. Sadece bir saatte bir Heroku cron işi yapabilirim, bu yüzden böyle zamanlanmış bir görev kurmanın en iyi yolu nedir? Heroku Rails 3.1 kullanıyorum.Her dakikada bir iş planı zamanlama Heroku'daki Rails 3.1
cevap
:run_at
ile kendi kendini yeniden başlatan bir iş ile delayed_job kullanabilirsiniz. çeşit Böyle bir şey: bir yere, sonra
class YourJob
def do_interesting_things
#... Do what needs to be done.
self.delay(:run_at => 1.minute.from_now).do_interesting_things
end
def self.start_me_up
new.do_interesting_things
end
end
Ve uygulamanızın başlatma sırasında: Bugün itibariyle
YourJob.start_me_up
yapabilirsiniz zamanlama mücevher, clockwork. Heroku resmen bunu destekliyor ve belgelerini here bulabilirsiniz.
Fantastik teşekkürler –
Sadece [clockwork] (https://devcenter.heroku.com/articles/clock-processes-ruby) bir dyno gerektirdiğine dikkat edin, bu nedenle dyno diğer tür (aynı zamanda saat başına 0.05 $), aynı maliyet ikinciye faturalandırılabilir - yaklaşık ** 35 TL/ay **). * "* Her dakika" için planlamayı gerektirmez, ancak * her 10 dakikada bir *, * her saat * veya * her gün (belirli bir zamanda) * ile bitenler, sonra [Heroku Zamanlayıcısı] 'nı (https : //addons.heroku.com/scheduler), ücretsiz bir eklenti. – user664833
Saat işinin bir başka kısıtlaması, yalnızca tek bir dyno üzerinde çalışabilmesidir, bu yüzden tek bir işlemin halledilebileceğinden daha planlı çalışmanız varsa, 'delayed_job' çözümü daha iyi çalışır. – Leopd
Teşekkür ederim - bugün bunu deneyeceğim ve eğer çalışıyorsa, cevabı kabul ediyorum :-) –
Bu işe yaradı mı? Her 1 dakikada bir komisyon görevini çalıştırmaya ihtiyacım var ve kendisinin cron gerektirmesi için bir yol olması gerektiğini düşünüyorum. Şu anda heroku cron her saatte bir maks. – ylluminate
@ylluminate: Daha önce hiç duymadım ama işe yaramalı, denemeli ve bana nasıl gideceğini bilmeme izin ver. –