Pengantar

Asynq adalah kerangka kerja tugas asinkron untuk bahasa pemrograman Go, yang menggunakan Redis sebagai antrian pesan dan memiliki skalabilitas dan kesederhanaan.

Solusi tugas asinkron Asynq:

  • Klien menempatkan tugas ke dalam antrian.
  • Server mengambil tugas dari antrian dan memulai sebuah utas pekerja (goroutine) untuk setiap tugas.
  • Beberapa goroutine pekerja memproses tugas secara paralel.

Antrian tugas adalah mekanisme untuk mendistribusikan pekerjaan di sejumlah mesin. Sistem dapat terdiri dari beberapa server pekerja dan agen untuk mencapai ketersediaan tinggi dan skalabilitas horizontal.

Diagram Antrian Tugas

Fitur

  • Memastikan setidaknya sekali eksekusi tugas
  • Penjadwalan tugas
  • Mengulang tugas yang gagal
  • Pemulihan tugas otomatis saat utas pekerja crash
  • Antrian prioritas berbobot
  • Antrian prioritas ketat
  • Penundaan rendah dalam menambahkan tugas karena operasi tulis cepat di Redis
  • Duplikat tugas menggunakan opsi unik
  • Memungkinkan pengaturan waktu habis dan batas waktu untuk setiap tugas
  • Memungkinkan mengelompokkan sejumlah tugas untuk melakukan beberapa operasi berurutan secara berkelompok
  • Antarmuka handler fleksibel dengan dukungan untuk middleware
  • Memungkinkan menghentikan antrian untuk menghentikan pemrosesan tugas dari antrian
  • Tugas berkala
  • Mendukung Redis Cluster untuk pembagian otomatis dan ketersediaan tinggi
  • Mendukung Redis Sentinel untuk ketersediaan tinggi
  • Integrasi dengan Prometheus untuk mengumpulkan dan memvisualisasikan metrik antrian
  • Antarmuka web untuk memeriksa dan mengendalikan antrian dan tugas dari jarak jauh
  • Antarmuka baris perintah untuk memeriksa dan mengendalikan antrian dan tugas dari jarak jauh