Çekirdek veriArka plan işleri

İş Kuyrukları

Bir çalışan öldüğünde işleri kaybetmeyen, üreticiler ve tüketicilerin paralel çalıştığı FIFO kuyrukları.

ölçülen işlem hattıyla LPUSH/sn
31.6M
çökmede kaybolan iş
0
yoklama
0
Adım 1 / 5
Üreticiler iş iter

Herhangi bir servis, tüketicileri beklemeden iş ekler.

Örnek oturumplaying
# Üreticiler iş iter
hotkv> LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"
(integer) 18

Gerçek HotKV komutları ve örnek yanıtlarla animasyonlu bir anlatım. Herhangi bir adıma atlamak için üzerine tıklayın. Komutlar ve yanıtlar, HotKV'de yazdığınız ve gördüğünüz haliyle İngilizce kalır.

Sorun

E-postalar, görsel yeniden boyutlandırma ve web kancaları gibi arka plan işleri, onları oluşturan kod ile yapan kod arasında bir kuyruğa ihtiyaç duyar. Bir çalışan görev ortasında çöktüğünde bir işi kaybeden kuyruk, kuyruk olmamasından kötüdür; çünkü işin gittiğini kimse fark etmez.

HotKV bunu nasıl ele alır

Listeler size basit bir FIFO kuyruğu verir. BLMOVE her işi bir çalışana devredilirken bir işleme listesine taşır; böylece çalışan ortadan kaybolursa devam eden bir iş her zaman bir yerde saklıdır. Üreticiler ve tüketiciler paralel çalışan iş parçacıklarıyla karşılanır.

Adım adım

Ne olur, komut komut

  1. 01

    Üreticiler iş iter

    Herhangi bir servis, tüketicileri beklemeden iş ekler.

    LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"
  2. 02

    Bir çalışan bir işi güvenle üstlenir

    BLMOVE bir iş mevcut olana kadar bekler, sonra onu tek adımda bir işleme listesine taşır.

    BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0
  3. 03

    Bitince onaylayın

    E-posta gitti. İş işleme listesinden kaldırılır.

    LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"
  4. 04

    Bir çalışan çöker

    Çalışan 2 iş ortasında ölür. İşi hâlâ işleme listesinde, kaybolmadı.

    LRANGE queue:emails:processing 0 -1
  5. 05

    Yeniden kuyruğa alın ve devam edin

    Bir izleyici terk edilen işi kuyruğa geri taşır ve başka bir çalışan onu alır.

    LMOVE queue:emails:processing queue:emails LEFT RIGHT
Nereye uyar

Gerçek dünya senaryoları

İşlemsel e-posta ve SMS

Kayıt, makbuz ve sıfırlama iletileri web uygulaması tarafından kuyruğa alınır ve bir çalışan havuzu tarafından gönderilir.

Medya işleme

Yüklemeler küçük resim oluşturma ve kod dönüştürme için kuyruğa alınır; çöken bir kod dönüştürücü asla bir dosyayı düşürmez.

Web kancası teslimi

Giden web kancaları, onları tetikleyen isteği engellemeden kuyruğa alınır ve yeniden denenir.

Yerleşik

Neler elde edersiniz

Engelleyen okumalı FIFO

BRPOP ile LPUSH; çalışanlar iş gelene kadar uyur.

LPUSHBRPOP

Kayıp iş yok

BLMOVE her işi atomik olarak bir işleme listesine devreder.

BLMOVELREM

Paralel üreticiler ve tüketiciler

Üreticiler ve tüketiciler paralel çalışan iş parçacıklarıyla karşılanır.

Daha fazlası mı lazım?

Onaylar, tüketici grupları ve yeniden oynatma için akışları kullanın.

XADDXREADGROUP

Sık sorulan sorular

Bir çalışan çökerse işe ne olur?

İşleri BLMOVE ile üstlenirseniz iş işleme listesinde durur. Bir izleyici orada çok uzun süre kalan her şeyi kuyruğa geri taşıyabilir.

Çalışanların yoklama yapması gerekir mi?

Hayır. BRPOP ve BLMOVE, isteğe bağlı bir zaman aşımıyla, bir iş gelene kadar bekler.

Listeler mi akışlar mı?

Listeler en basit kuyruktur. Akışlar tüketici gruplarını, ileti başına onayı ve geçmişi ekler. Olay akışı kullanım senaryosuna bakın.

İlgili kullanım senaryoları

Kendi iş yükünüzde deneyin

HotKV, Redis protokolünü konuşur; bu yüzden mevcut bir istemciyi ona yönlendirip aynı komutları çalıştırabilirsiniz.