gisila_queue 0.1.1
gisila_queue: ^0.1.1 copied to clipboard
A Celery-like distributed task queue for Dart: register named tasks, enqueue them from anywhere with .delay()/.applyAsync(), and process them with worker pools backed by a pluggable broker (Redis or i [...]
Changelog #
Unreleased #
0.1.1 #
RabbitBroker— RabbitMQ (AMQP) broker viadart_amqp. Durable queues, manual ack for at-least-once delivery, and ETA/countdown via per-message TTL- dead-letter exchange (stock RabbitMQ, no delayed-message plugin). Tagged
integration tests (
rabbitmq) and--broker=rabbitmqon the throughput benchmark.
- dead-letter exchange (stock RabbitMQ, no delayed-message plugin). Tagged
integration tests (
- GisilaRose dashboard polish: light-theme UI with timestamps, task detail
drawer, per-worker drill-down, Flower-style fire/retry/revoke and queue
pause/resume, optional HTTP Basic Auth,
GET /api/workers/<id>,worker=task filter, andactive_task_idson workers. - Fix worker
timeLimitabandon path: avoidFuture.catchError((_) => null), which typed handlers (e.g.Future<bool>) reject as an invalid null error replacement and crash the worker.
0.1.0 #
Initial release.
GisilaQueueapp with a named-task registry and typedTaskRefproducers (.delay()/.applyAsync()).- Pluggable
Broker:InMemoryBroker(single-isolate / tests) andRedisBroker(distributed, list-based queues + sorted-set ETA scheduling). - Pluggable
ResultBackend:InMemoryResultBackendandRedisResultBackend(TTL'd result keys); backend is optional for fire-and-forget use. Workerwith cooperative async concurrency, named-queue priority routing, retries with exponential backoff + jitter,ctx.retry()/RejectTask, and success/failure/retry observer hooks.AsyncResultfor polling task state and awaiting return values.Beatscheduler for periodic tasks (Schedule.every,Schedule.dailyAt).