Kuyruk ve Redis
Sürücü Redis ve BullMQ’yi kullanır, böylece yazdırma işleri süreç hatalarından ve yazıcı kesintilerinden kurtulur.Yazıcı Başına Kuyruklar
Her benzersizip_address:port, özel bir PrinterStore alır.
Örneğin:
- Bir BullMQ sırası.
- Bir BullMQ çalışanı.
- Bir kuyruk olayı dinleyicisi.
- Bir yazıcı durumu önbelleği.
- Bir soket yaşam döngüsü denetleyicisi.
1’dir, dolayısıyla bir yazıcı hiçbir zaman aynı anda iki iş almaz. Her yazıcının kendi çalışanı olduğundan farklı yazıcılar paralel olarak işleyebilir.
Yazıcı Kaydı
Bilinen yazıcılar Redis setinde saklanır:restorePersistedStores() seti okur, depoları yeniden oluşturur ve başarısız olan işleri yeniden dener.
Davranışı Yeniden Dene
Varsayılan kuyruk seçenekleri:- Tamamlanan işler kaldırılır.
- Başarısız olan işler korunur.
- Başarısız işler sabit geri çekilmeyle yeniden denenir.
- Varsayılan
maxAttemptssonsuza kadar etkili bir şekilde yeniden dener.
Planlanmış İşler
POST /print, runAt’yi kabul eder.
runAt gelecekteyse sürücü işi BullMQ gecikmesiyle ekler. Gelecekteki bir zamanlama için gecikmiş bir iş oluşturulduysa kurtarma mantığı bunu erken desteklemez.
Kabul edilen runAt formları:
- Milisaniyelik zaman damgası numarası.
- Sayısal dize.
Date.parse()’nin ayrıştırabileceği tarih dizesi.
Kuyruk Durumu
GET /queue-status bilinen tüm mağazaları bir araya getirir:
waitingactivedelayedfailedcompletedtotalPendingisProcessing
totalPending, tüm mağazalarda waiting + delayed’dir.
Gömülü Redis
Katıştırılmış mod Redis’denredis-memory-server’ye kadar başlar.
Windows’ta sürücü istenen Redis ikili dosyasını kontrol eder veya indirir:
config.redis.version’ye eşit değilse başlatma iptal edilir.
Disk Senkronizasyonu
redis.diskSync doğru olduğunda, Redis anlık görüntü ayarlarıyla başlar:
SAVE girişiminde bulunur.
Yeniden başlatmalardan kurtulmak için kuyruklara ve bilinen yazıcılara ihtiyaç duyduğunuzda disk senkronizasyonunu kullanın.