2012-07-24 34 views
15

Şu an yerel gelişim ortamımda mükemmel çalışan bir delayed_job uygulaması var. İşçiyi makinemde başlatmak için rake jobs:work'u çalıştırıyorum ve mükemmel çalışıyor.Heroku'da çalışan gecikmeli işçi mi?

Heroku üzerinde çalışmak için delayed_job almak için, hemen hemen aynı komutu kullanıyorum: heroku run rake jobs:work. Bu çözüm, işçiler için Heroku'ya bir şey ödemek zorunda kalmadan işe yarıyor, ancak komut istemi penceremi açık tutmam gerekiyor ya da kapattığımda ertelenen_job işçisinin durması gerekiyor. Komut penceresini kapattığımda bile bu gecikmeli işçi çalıştıran sürekli çalışan bir komut var mı? Ya da bunun hakkında daha iyi bir yolu var mı?

cevap

9

sizin Procfile için

worker: rake jobs:work 

ekleyin.

DÜZENLEME: Eğer işçi dyno 'satın' ama Heroku ikinci biling başına sahip konsoldan çalıştırmak bile

. Yani ödemezsiniz çünkü 750 saatiniz boştur ve en kötü ayda 744 saattir, böylece ekstra dynosunuz, zamanlayıcı görevleriniz ve benzeri işlemler için ücretsiz 6 saatiniz vardır.

+2

Dökümantasyon şu adreste bulunabilir: https://devcenter.heroku.com/articles/delayed-job – zsquare

+5

Konsolunuzdan çalıştırsanız bile 'satın al' işçi dyno ama Heroku'nun saniyede iki kez olduğunu, bu yüzden ödeme yapmıyorsunuz çünkü 750 saat ücretsiz ve en kötü durumda 744 saatiniz var, bu yüzden ekstra dynosunuz, program görevleriniz ve diğer n. – Hauleth

13

Kahramanda gecikmeli işleri çalıştırmak için workless gem ürününü öneririm. Bunu şimdi kullanıyorum - benim için mükemmel, sıfır zorluk ve sıfır maliyetle çalışıyor.

Ayrıca, ölçekleme işçileri üzerinde çok daha iyi bir denetim düzeyi sağlayan hirefireapp'u da kullandım. Bu maliyetler, ancak tek bir kahramana çalışanın (bir aydan fazla) maliyeti daha düşük. Bunu şimdi kullanmıyorum ama kullandım ve çok iyi çalıştı.

+0

İş yükünü kurdum ve heroku değişkenlerini yapılandırdım. Ben şimdi ne yapmalıyım? Çalışmıyor gibi gözüküyor. –

+0

yapılandırmayı eklediniz mi (sedir üzerindeyseniz)? config.after_initialize yapmak Gecikmeli :: Job.scaler =: heroku_cedar sonu sizin için –

+0

@DamonMannion 5 Ben denedim bile yayınlanmıştır kod eklendi, ancak bu sadece çalışmıyor @Damon Bu yanıt – Kashiftufail

0

Çalışanlara iş bulmak için heroku konsolunu kullanmak, yalnızca iş için geçici bir dyno yaratır. İşlerin cli olmadan devam etmesini sağlamak için, komutu @Lucaksz'ın önerdiği gibi Procfile'a koymanız gerekir. Heroku ps: Ölçek işçisi = 1

fazla detay

yerleştirildikten sonra, ayrıca Heroku böyle süreç tipi üzerine konulmalıdır kaç Dyno bilmek gerekir gibi Dyno kabuk oluşumuna ihtiyaç Burada okunabilir https://devcenter.heroku.com/articles/scaling