Acks_late: seledri + redis broker / backend

Saya sedang membaca kode seledri. Acks_late dipanggil setelah fungsi tugas dijalankan melalui (task_trace). Namun, di Redis, setelah tugas diterima (yaitu muncul dari Antrean Redis) RedisWorkerController membuat permintaan tugas untuk tugas tersebut. Bagaimana cara mengantri lagi jika node pekerja mati?


person vin    schedule 31.01.2018    source sumber


Jawaban (1)


Pesan-pesan tersebut tidak dimasukkan lagi dalam antrean jika pesan-pesan tersebut tidak diakui (Tidak mungkin jika pekerja tersebut meninggal. Pesan-pesan tersebut memang ada di Redis sebagai tidak diakui).

Menurut dokumen seledri, broker Redis memiliki mekanisme batas waktu visibilitas.

Jadi kita bisa mengharapkan pesan dikirimkan lagi ke pekerja jika pesan tersebut tidak diakui dalam batas waktu visibilitas. Dan itulah yang terjadi. Jika listrik padam selama pemrosesan tugas acks_late, tugas tersebut diterima kembali oleh pekerja online setelah batas waktu visibilitas terlampaui.

person suligap    schedule 02.08.2018