Как спроектировать task queue?

Middle
613 просмотров
AFK Offer AI

Task queue — это система для асинхронной обработки задач. Producer кладёт задачу в очередь (Redis, RabbitMQ, PostgreSQL с SKIP LOCKED), worker забирает и выполняет. Нужны: приоритеты, retry с backoff, dead letter queue для неудавшихся задач, таймаут выполнения. В Go популярны Asynq (на Redis) и River (на PostgreSQL). Ключевое — at-least-once delivery: задача может выполниться повторно при сбое, поэтому обработка должна быть идемпотентной. Мониторинг: длина очереди, latency, error rate.

Следующий вопрос

Как настроить GitHub Actions?