2016-04-13 22 views
1

Anladığım şey doğruysa, arkaplan görevlerini işlemek, cpu ile ilişkili görevlerin ana iş parçacığını serbest bırakmanın iyi bir yoludur.Düğümde arka plan görevlerini çalıştırmak için ne gerekir?

Elde edemediğim şey, ana iş parçacığı dışındaki görevleri çalıştırmak için boğa veya kue gibi sistemlerde kullanılan şey.

Bunlar iş parçacığı kullanıyor mu? Tüm düğüm işlem çatalına mı ihtiyaçları var? Çocuk süreçlerini mi üretiyorlar?

cevap

1

Boğa, bu işlerin verilerinin işlenmesi ve Kuyruğa Alınması işlemlerini kendi işleminde işleyen Redis dayanmaktadır. Hafif, sağlam ve hızlı bir iş işleme kuyruğu. Kalıcılık için redis kullanır, bu nedenle sunucu herhangi bir nedenle düşerse sıra kaybolmaz.

Job iç uygulama görülebilir here

aynı node.js. için inşa Redis süreçler tarafından desteklenen öncelikli iş kuyruğu vardır Kue modülü ile olan Arka plan görevleri Redis tarafından desteklenmektedir.

Bu modül, farklı arka plan oluşturma işleri sağlayan Redis dış işlemine bağlı olduğu anlamına gelir.

  • enqueue görevi biraz
  • promotion sıraya konuldu iş
  • progress işin ilerlemesini sıraya kadar gecikmeli durumdan terfi edilir:

    Meslek özgü olaylar Redis PubSub aracılığıyla İş örnekleri tetiklenen 0-100

  • failed attempt arasında değişiklik yapılan arama başarısız oldu, ancak kalan süre daha var.
  • failed iş başarısız oldu ve var olan hiçbir kalan girişimleri
  • complete iş iş/içinde geri aramalar geri tetikler bildirdiği Redis Kuyruğu güçlendiriliyor

gecikmeli İşler kaldırıldı

  • remove
  • tamamladı modülü.

    +0

    bir geri arama tetikler. Ve redis sürecinin yetenekleri nelerdir? Çok süreç mi? Dişli? Tek iplik sınırlı mı? –

    +0

    Redis açık kaynaklı bir kaynaktır (BSD lisanslı), bellek içi veri yapısı deposu, veritabanı, önbellek ve mesaj komisyoncusu olarak kullanılır. –

    +0

    Redis, epoll/kqueue ile tek iş parçacıklı ve G/Ç eşzamanlılık anlamında süresiz olarak ölçeklendirilir. - @ antirez (Redis'in yaratıcısı). http: // stackoverflow.com/questions/21304947/redis-performance-on-a-çok çekirdekli-işlemci –

    0

    Bu, node.js'nin çalışma şekli değil. Node.js dahili olarak istekleri işlemek için bir olay döngüsünü kullanır (ve böylece olay odaklı bir çerçeve oluşturur)

    Bu olay döngüsünün tamamı tek bir iş parçacığında çalışır. Uzun bir çalıştırma komutu (G/Ç veya ağ işlemleri gibi) yürüttüğünüzde, istek döngüye girilir ve işlem engellenmez. İşlem tamamlandıktan sonra bu i bg görevler harici olmayan düğüm süreci yararlanabilecek hiçbir ipucu yoktu çok ilginç Kodunuzdaki

    Event Loop

    +0

    Görüntü için bir kaynağınız var mı? – Highmastdon