Quicx е лек, бърз и лесен за интегриране task queue engine, написан изцяло на C. Проектиран да реши един от най-честите проблеми в production среди — неконтролируемото нарастване на паметта при обработка на фонови задачи.
За разлика от съществуващите решения като Celery и BullMQ, които разчитат на езици с garbage collector или стандартния системен алокатор, Quicx използва PMAD — custom slab алокатор, разработен специално за целта. PMAD разпределя паметта предварително при стартиране, в фиксирани блокове с различни размери. Всяка задача получава блок от подходящия размер в O(1) време, без malloc, без фрагментация, без изненади.
Резултатът е измерим и конкретен: там където Celery изисква рестартиране на worker процесите след определен брой задачи заради нарастване на паметта, Quicx работи с идентичен memory footprint от стартиране до спиране — независимо дали са обработени хиляди или милиони задачи.
Автор
Линкове