Giriş

Asynq, Go dilinde bir arka plan görev çerçevesidir ve mesaj kuyruğu olarak Redis'i kullanır, ölçeklenebilirlik ve basitlik özelliklerine sahiptir.

Asenkron görev çözümü Asynq şunları içerir:

  • Müşteri görevleri kuyruğa ekler.
  • Sunucu, görevleri kuyruktan alır ve her görev için bir işçi iş parçacığı (goroutine) başlatır.
  • Birden fazla işçi iş parçacığı görevleri paralel olarak işler.

Görev kuyruğu, işleri birden çok makineye yaymak için bir mekanizmadır. Sistem, yüksek kullanılabilirlik ve yatay ölçeklenebilirlik elde etmek için birden çok işçi sunucusu ve ajan içerebilir.

Görev Kuyruğu Diyagramı

Özellikler

  • En az bir kez görev yürütme garantisi
  • Görev zamanlaması
  • Başarısız görevleri tekrar deneme
  • Bir işçi iş parçacığı çöktüğünde otomatik görev kurtarma
  • Ağırlıklı öncelikli kuyruk
  • Kesin öncelikli kuyruk
  • Redis'te hızlı yazma işlemleri nedeniyle görev eklerken düşük gecikme
  • Benzersiz seçeneklerle görevleri çoğaltma
  • Her görev için zaman aşımı ve son tarih belirleme
  • Bir grup görevi birleştirerek toplu işlemleri gerçekleştirmek için destek
  • Ara yazılımı destekleyen esnek işleyici arayüzü
  • Kuyruğu durdurarak kuyruktan görev işleme durdurma izni verme
  • Periyodik görevler
  • Otomatik parçalama ve yüksek kullanılabilirlik için Redis Cluster desteği
  • Yüksek kullanılabilirlik için Redis Sentinel desteği
  • Kuyruk metriklerini toplamak ve görselleştirmek için Prometheus entegrasyonu
  • Kuyrukları ve görevleri incelemek ve uzaktan kontrol etmek için web arayüzü
  • Kuyrukları ve görevleri incelemek ve uzaktan kontrol etmek için komut satırı arayüzü