Sadece bir Django projesinde kerevizle başlıyorum ve bu özel problemde sıkışıp kaldım: Temel olarak, farklı çalışanlara uzun süren bir görevi dağıtmam gerekiyor. Görev aslında her biri tamamlanması için önemli bir süre alan birkaç aşamaya bölünmüştür. Bu nedenle, bazı adımlar başarısız olursa, sonuçların tamamlanmış adımlardan yeniden kullanılması için aynı çalışanı kullanarak bu görevi yeniden denemek için kereviz isterim. Kereverin görevleri belirli bir sunucuya dağıtmak için yönlendirmeyi kullandığını anlıyorum, ancak bu sorunla ilgili hiçbir şey bulamıyorum. RabbitMQ'yi aracım olarak kullanırım. Her celeryd örneği olabilirAynı işçi kullanarak kereviz yeniden deneme nasıl yapılır?
6
A
cevap
11
işçinin hostname adını taşıyan kuyruktan tüketmek:
celeryd -l info -n worker1.example.com -Q celery,worker1.example.com
worker1.example.com
için hostname belirtir ve aynı adlı bir kuyruğa yanı sıra varsayılan kuyruğundan tüketecek (celery
olarak adlandırılmıştır).
task.apply_async(args, kwargs, queue="worker1.example.com")
similary yeniden deneme yönlendirmek için:
task.retry(queue="worker1.example.com")
veya aynı işçiye yeniden deneme yönlendirmek için:
Sonra kullanabileceğiniz belirli işçiye bir görev yönlendirmek içintask.retry(queue=task.request.hostname)
İlgili konular
- 1. cURL PHP'de yeniden deneme
- 2. Kereviz/Django - programlama sadece kereviz yüklü
- 3. RabbitMQ'de yeniden deneme denemesi sayısını nasıl belirlerim?
- 4. Kereviz Süreci 'İşçi' başlamadan önce 'exitcode 1' ile öldürülen oluyor
- 5. kereviz
- 6. GAE'nin cron yeniden deneme parametreleri
- 7. kereviz bellek yönetimi
- 8. Django ve Kereviz - bir değişiklikten sonra Kereviz kodunu yeniden yükleme
- 9. benim işçi rolü yeniden başlatma bilmiyorum
- 10. inlineCallbacks kullanarak deneme sürümünde assertRaises nasıl kullanılır
- 11. Swift "yeniden deneme" mantığı istek üzerine
- 12. Bluebird Promise Yeniden Deneme BelgesiDB isteği
- 13. NET'te özgeçmişi/yeniden deneme desteğiyle HTTP'den büyük dosya indirilsin mi?
- 14. Kereviz içinde sonlandırılırsa periyodik bir görev nasıl alınır?
- 15. Farklı sınıflar için aynı deneme vakası nasıl çalıştırılır?
- 16. Süpervizör + Django + Kereviz birden çok Kuyruklu ve İşçi ile nasıl kullanılır?
- 17. Yeniden Boyutlandırılabilir Paneller Nasıl Yapılır?
- 18. ruby: komut dosyasının 3. yeniden deneme olup olmadığını nasıl öğrenebilirim?
- 19. Javascript kullanarak her 5 saniyede bir yeniden yükleme nasıl yapılır?
- 20. Birden fazla kereviz işçisini aynı görevleri nasıl yerine getiririm?
- 21. Homojen olmayan görevlerle birlikte kereviz
- 22. IIS7 URL Yeniden Yazma Modülü'nü kullanarak uygulama köküne nasıl yönlendirme yapılır?
- 23. Celery'da işçi kimliğini alın
- 24. birden çok işçi ve kereviz django daemon üzerinde birden fazla kuyruk
- 25. Web İşçi Bellek Sızıntısı?
- 26. Kereviz hatası
- 27. Ayarlar hakkında django-kereviz uyarıları.DEBUG
- 28. dahili hata: henüz deneme ayarlı değil sınıfı yeniden deneyin
- 29. Varolan RabbitMQ iletilerini kullanarak Kereviz kullanma
- 30. İki uyarının üstbilgileri IDL'de nasıl aynı yapılır?
Cevabınız için çok teşekkürler! Bence tam da aradığım şey bu. Yeniden adlandırabilmenin() olduğunu anlayamadım, ama şimdi çok mantıklı geliyor :) – dangmai
'celeryd' şimdi kullanımdan kaldırıldı, kereviz işçisi kullan. – user
Komut satırını oluşturmak için windows'ta '% computername%' ve linux üzerindeki '\' hostname \ '' işlevini kullanın. – ubershmekel