CatMQ v2.9.1
Downloads
CatMQ.linux.arm64.zip
59.96 MB · 1 downloads
CatMQ.linux.x64.zip
68.83 MB · 2 downloads
CatMQ.windows.x64.exe
14.03 MB · 1 downloads
NuGet packages: NTDLS.CatMQ.Client, NTDLS.CatMQ.Server and NTDLS.CatMQ.Shared (see all on NuGet).
Release notes
Full Changelog: https://github.com/NTDLS/CatMQ/compare/2.9.0...2.9.1
Be sure to check out the NuGet packages: 📦
https://www.nuget.org/packages/NTDLS.CatMQ.Shared
https://www.nuget.org/packages/NTDLS.CatMQ.Server
https://www.nuget.org/packages/NTDLS.CatMQ.Client
New 🎉
- Added a per-queue backoff for failed deliveries.
Changed 😎
- Each queue now runs its delivery loop on a dedicated, named thread (
CatMQ.Delivery.<QueueName>) instead of a thread pool thread. - A
MaxMessageAgeof zero now means messages never expire, for both queues and dead-letter queues, matching the documented behavior. - Upgrade note: queues with a dead-letter
MaxMessageAgeof00:00:00will now keep expired messages in the dead-letter queue instead of dropping them. These queues may grow and will need to be drained or purged.
Fixed 🐛
- Fixed thread pool starvation on servers with few cores and multiple queues, where blocked delivery loops could delay delivery replies, enqueues and the web UI.
- Fixed expired messages being silently dropped instead of dead-lettered when the dead-letter
MaxMessageAgewas zero. - Fixed messages in a dead-letter queue with a
MaxMessageAgeof zero expiring as soon as they were loaded for delivery. - Fixed low throughput with asynchronous delivery: when all delivery slots were full, the delivery thread now wakes as soon as one frees up instead of waiting for its idle timeout.
- Fixed delivery stalls on persistent queues when reloading an empty message buffer, which scanned every deleted message while holding the write lock. Loading now resumes from the last loaded message.
- Fixed delivery stopping while the message buffer was under constant read activity, because removing finished messages and reloading the buffer each tried the write lock only once.