← Cloudflare Queues / queues
Настройка Queues
Cloudflare Queues можно настроить с помощью Wrangler, интерфейс командной строки для Developer Platform Cloudflare, который включает Workers, R2, а также другие продукты для разработчиков.
У каждого Worker-производителя и Worker-потребителя есть конфигурационный файл Wrangler , в котором указываются переменные окружения, триггеры и ресурсы, такие как очередь. Чтобы обеспечить взаимодействие Worker с ресурсом, необходимо настроить привязка в файле Wrangler вашего проекта Worker.
Настройте очередь с помощью параметров ниже.
Настройка очереди
Следующие настройки уровня очереди можно настроить с помощью Wrangler:
npx wrangler queues update <QUEUE-NAME> --delivery-delay-secs 60 --message-retention-period-secs 3000-
--delivery-delay-secsnumberoptional- Насколько задерживается опубликованное сообщение перед доставкой потребителям.
- Должно быть от 0 до 86400 (24 часа).
- По умолчанию: 0.
-
--message-retention-period-secsnumberoptional- Как долго сообщения хранятся в очереди.
- По умолчанию: 345600 (4 дня).
- Должно быть от 60 до 1209600 (14 дней)
Настройка Worker-производителя
Производителем называется Cloudflare Worker , которая записывает данные в одну или несколько очередей. Производитель может принимать сообщения по HTTP, асинхронно записывать сообщения при обработке запросов и (или) записывать их в очередь из Durable Object. Любой Worker может записывать данные в очередь.
Чтобы отправлять сообщения в очередь, настройте привязку в файле Wrangler. Эти параметры применяются, если Worker должен отправлять сообщения в очередь.
{
"queues": {
"producers": [
{
"queue": "my-queue",
"binding": "MY_QUEUE"
}
]
}
}[[queues.producers]]
queue = "my-queue"
binding = "MY_QUEUE"-
queuestring- Имя очереди.
-
bindingstring- Имя привязки, которое является переменной JavaScript.
Конфигурация Worker-потребителя
Чтобы получать сообщения из одной или нескольких очередей, настройте привязку в файле Wrangler. Эти параметры используются, когда Worker должен получать сообщения из очереди.
{
"queues": {
"consumers": [
{
"queue": "my-queue",
"max_batch_size": 10,
"max_batch_timeout": 30,
"max_retries": 10,
"dead_letter_queue": "my-queue-dlq"
}
]
}
}[[queues.consumers]]
queue = "my-queue"
max_batch_size = 10
max_batch_timeout = 30
max_retries = 10
dead_letter_queue = "my-queue-dlq"См. Лимиты , чтобы ознакомиться с максимальными значениями для каждого из этих параметров.
-
queuestring- Имя очереди.
-
max_batch_sizenumberoptional- Максимальное количество сообщений, допустимое в одном пакете.
- По умолчанию:
10сообщения.
-
max_batch_timeoutnumberoptional- Максимальное время ожидания заполнения партии, в секундах.
- По умолчанию:
5секунд.
-
max_retriesnumberoptional- Максимальное количество повторных попыток обработки сообщения в случае сбоя или
retryAll()вызывается. - По умолчанию:
3повторных попыток.
- Максимальное количество повторных попыток обработки сообщения в случае сбоя или
-
dead_letter_queuestringoptional- Имя другой очереди, в которую сообщение будет отправлено, если его обработка не удалась хотя бы
max_retriesраз. - Если
dead_letter_queueне задан, сообщения, обработка которых постоянно завершается ошибкой, в конечном итоге будут отброшены. - Если очереди с указанным именем не существует, она будет создана автоматически.
- Имя другой очереди, в которую сообщение будет отправлено, если его обработка не удалась хотя бы
-
max_concurrencynumberoptional- Максимальное количество потребителей, которые могут выполняться одновременно. Если это значение не задано, количество вызовов будет масштабироваться до текущий поддерживаемый максимум.
- См. Параллельность потребителей с дополнительной информацией о том, как потребители автомасштабируются, особенно при повторных попытках доставки сообщений.
На основе pull
У очереди может быть потребитель на основе HTTP, который забирает из неё сообщения. Таким потребителем может быть любая служба, поддерживающая HTTP и способная обмениваться данными через интернет. См. Pull-потребители , чтобы узнать, как настроить pull-потребителя.