Подтвердить что ты не робот

Что означает "размер ведра" очереди в движке Google?

Google app engine очереди задач имеют конфигурацию как (пример)

  <queue>
    <name>mail-queue</name>
    <rate>5/m</rate>
    <bucket-size>10</bucket-size>
  </queue>

Здесь, что означает "размер ведра"? Я не смог найти исчерпывающую документацию об этом в документации по движке Google.

Указывает ли это, что 10 означает, что если 100 задач поставлены в очередь в одно мгновение, только 10 из них будут помещены в очередь, а отдых будет проигнорирован?

4b9b3361

Ответ 1

размер ведра отлично описан здесь:

Ограничивает разрывность обработки очереди, т.е. более высокий размер ведра позволяет увеличить пики скорости выполнения очереди. Например, рассмотрите очередь со скоростью 5/с и размером в ковш 10. Если эта очередь неактивна в течение некоторого времени (позволяя ее "маркерному ковшу" заполнить), а 20 заданий внезапно завершаются, это будет иметь возможность немедленно выполнить 10 задач. Но в следующую секунду будет выполнено только еще 5 задач, потому что токеновый ковш исчерпан и заправляется с заданной скоростью 5/с.

Если для очереди не указано значение bucket_size, значение по умолчанию равно 5.

В вашем случае это означает, что если 100 сообщений поставлены в очередь, выполняется только десять, а еще 5 - в следующую минуту. Вы не потеряете никаких сообщений, но они будут стоять в очереди, если ваш размер и скорость вашего ведра будут слишком низкими.