Bir işin diğerine bağımlı olduğunu ve ikincisi tamamlanana kadar başlatılamayacağını söylemek için bir yol var mı?sidekiq'e bir işin başka birine bağımlı olduğunu söyleme yolu var mı
cevap
için devlet tabloda bir göz yukarı yapabileceği konum:
# config/initializers/superworkers.rb
Superworker.create(:MySuperworker, :user_id) do
Worker1 :user_id
Worker2 :user_id
end
# Anywhere
MySuperworker.perform_async(123)
sen MySuperworker çalıştırın worker1 başlayacaktır. İş bittiğinde, Worker2 başlayacaktır. Bu, bağımlılık grafiğini işçilerin kendilerinden ayırmanızı sağlar. (Feragatname: Ben geminin yazarıyım.)
Sadece Sidekiq kullanarak; cevap hayır olurdu. DickieBoy'un önerdiği gibi, bağımlı iş tamamlandığında sadece tekmelemeniz gerekir. Böyle bir şey.
# app/workers/hard_worker.rb
class HardWorker
include Sidekiq::Worker
def perform()
puts 'Doing hard work'
LazyWorker.perform_async()
end
end
# app/workers/lazy_worker.rb
class LazyWorker
include Sidekiq::Worker
def perform(name, count)
puts "Guess it's time I do something"
end
end
Burada LazyWorker yalnızca HardWorker'ın sonunda çalışır; Bu her zaman gerekli değilse ek mantık eklenebilir; LazyWorker, gerektiğinde doğrudan çağrılabilir. Bu, tüm kullanım durumları değilse çoğu için çalışmalıdır; ve Sidekiq ile başka bir gem çekmezseniz gerçekten tek seçenek.
başka bir iş doğrudan ateş yeterince iyi değil ...
Bu bir devlet makinesini düşünmelisiniz çalışmaz şey yapıyorsanız. Bir iş kovulduğunda, muhtemelen bir ID ile birlikte bir kayıt oluşturur ve koşma, başarısız olma, tamamlanma, bekleme halleri olabilir. Bağımlı iş daha sonra durum tablosundaki bir veya daha fazla bağımlılığı kolayca kontrol edebilir ve tüm bağımlılıklarının yerine getirildiğinden emin olabilir.
Sen bağımlı iş Sidekiq Superworker kullanarak Sen iş bağımlılıkları tanımlayabilirsiniz bağımlılık
- 1. Keyboard.FocusedElement öğesine bağlamanın bir yolu var mı?
- 2. QT QTNetworkManager olmadan görüntü yüklemenin başka bir yolu var mı?
- 3. Bir bağımlı düğümde aynı dosyada birden fazla blok var mı?
- 4. Tip bildirimlerini genişletmenin bir yolu var mı?
- 5. Tüm maven bağımlılıkların java sürümünü listelemenin bir yolu var mı?
- 6. MS-SQL: Bir sütun türünün tüm örneklerini başka birine dönüştürme
- 7. Scala'nın RichString'ini genişletmenin bir yolu var mı?
- 8. Köşeli yönlendirici: var olan bir durumu başka bir modülün yapılandırma bloğunda genişletmenin bir yolu var mı?
- 9. Netbeans 8'de otomatik kaydetme yapmanın bir yolu var mı?
- 10. Özel SmartArt geliştirmenin bir yolu var mı?
- 11. TensorFlow baskılarını bastırmanın bir yolu var mı?
- 12. CGPoints'i karşılaştırmanın bir yolu var mı?
- 13. Hata içe aktarma - başka birine başvuruyor .java
- 14. C harflerini saymanın bir yolu var mı?
- 15. Statik bir kütüphaneniz var mı, 32 bit veya 64 bit için olduğunu bilmenin basit bir yolu var mı?
- 16. django.db.connection.queries öğesini temizlemenin bir yolu var mı?
- 17. #pragma directive derleyicisi bağımlı mı?
- 18. Bir php değişkenini bir düğme (html/php) kullanarak başka bir sayfaya iletmenin bir yolu var mı?
- 19. Parametreyi çıkarmanın bir yolu var mı?
- 20. "Vurgulu" kodun herhangi bir yolu var mı?
- 21. cuBLAS'da "saypx" yapmanın bir yolu var mı?
- 22. gvfsd-http'un ne olduğunu bilen var mı?
- 23. İlişkilerimde neyin yanlış olduğunu bilen var mı?
- 24. PyCharm'a bir öznitelik örneğinin hangi sınıfta olduğunu açıkça belirtmenin bir yolu var mı?
- 25. Hangi paketlerin belirli bir pakete bağlı olduğunu öğrenmenin bir yolu var mı (Julia)?
- 26. C# Genel - T'nin bir özniteliğine sahip olduğunu bildirmenin herhangi bir yolu var mı?
- 27. Bir kullanıcının google 1+ URL adresine sahip olduğunu bildirmenin kolay bir yolu var mı
- 28. Bir yapının Adhoc olup olmadığını, programlı olarak dağıtımı mı, dağıtım mı olduğunu kontrol etmenin bir yolu var mı?
- 29. IComparer'dan IEqualityComparer türetmenin bir yolu var mı?
- 30. Bir işaretçi-üye işlevini aynı sınıftan başka birine atama
İlk işiniz bağımlı işi başlatamaz mı? – DickieBoy
no. maalesef bu şekilde ele alınamaz –