Queues
Что это
Представьте кофейню: вы делаете заказ у стойки и уходите, а бариста разбирает чеки-заказы один за другим. Очередь () — это и есть та самая вереница чеков. Cloudflare Queues — это управляемая очередь сообщений для Workers, построенная на этой идее. Один Worker помещает сообщения в очередь (производитель, как кассир, принимающий заказы); другой Worker вызывается с пакетами этих сообщений для их обработки (потребитель, как бариста). Это позволяет отделить медленную или ненадёжную работу от запроса, который её инициировал — принять запрос быстро, а саму работу выполнить в фоне.
Сильные стороны
- Разделяет производителей и потребителей, сглаживая всплески трафика.
- Автоматическая пакетная обработка, повторные попытки и очередь недоставленных сообщений (dead-letter queue — зона хранения для сообщений, которые продолжают завершаться сбоем), так что ничто не теряется незаметно.
- Чистая интеграция с Workers — и производитель, и потребитель являются Workers с привязками.
- Не нужно поддерживать инфраструктуру; масштабируется вместе с вашим трафиком.
- Гарантирует доставку «хотя бы один раз», поэтому сообщения не теряются незаметно.
Компромиссы
- Доставка «хотя бы один раз» означает, что потребители должны быть идемпотентными ( — безопасными для повторного запуска на одном и том же сообщении дважды без вреда; обрабатывать дубликаты).
- Не для мгновенных, синхронных ответов — работа выполняется асинхронно.
- Порядок соблюдается по мере возможности, а не строго и глобально.
- У пропускной способности и размера сообщений есть ограничения, которые нужно учитывать при проектировании.
Когда использовать
Используйте Queues для фоновых задач: отправки писем, обработки загрузок, вызова медленных сторонних (Application Programming Interfaces — программные интерфейсы приложений, конечные точки для общения с другими сервисами), рассылки вебхуков или буферизации записей — всего, чего вы бы предпочли не заставлять пользователя ждать.
Подходит для vibe coding
Queues — это удобный способ для агента добавить фоновую обработку без развёртывания брокера. Попросите его сделать потребителя идемпотентным (использовать ключ сообщения) и настроить очередь недоставленных сообщений, чтобы сбои были видны. Конфигурация подключает один Worker одновременно как производителя и потребителя очереди.
# wrangler.toml
[[queues.producers]]
queue = "jobs"
binding = "JOBS"
[[queues.consumers]]
queue = "jobs"
max_batch_size = 10
dead_letter_queue = "jobs-dlq"
npx wrangler queues create jobs
npx wrangler deploy