Beanstalkd: Как автоматически похоронить работу, которая поражает TTR?

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

Как можно это сделать?

(Если это имеет значение, мы используем PHP + Pheanstalk)

1

Решение

Мне кажется, что вы не реализовали протокол должным образом. Вы должны справиться DEADLINE_SOON, и делать TOUCH,

Что означает DEADLINE_SOON?

DEADLINE_SOON является ответом на резервную команду, указывающую, что у вас зарезервировано задание, срок которого действительно скоро (текущий запас прочности составляет приблизительно 1 секунду).

Если вы часто получаете DEADLINE_SOON Ошибки при резервировании, вам, вероятно, следует подумать об увеличении TTR на ваших работах, поскольку это обычно означает, что вы не выполняете их вовремя. Может также случиться так, что вы не удаляете задачи, когда выполнили их.

Увидеть обсуждение списка рассылки для дополнительной информации.

Как работает TTR?

TTR относится только к работе в тот момент, когда она становится зарезервированной. В этом случае таймер (называемый «оставшееся время» в статистике работы) начинает отсчет времени от работы. TTR,

  • Если таймер достигает нуля, задание возвращается в очередь готовности.
  • Если задание похоронено, удалено или освобождено до истечения времени таймера, таймер перестает существовать.
  • Если задание коснется до того, как таймер достигнет нуля, таймер начнет отсчет с TTR.

Команда «touch»

Позволяет работнику запрашивать больше времени для работы на работе.
Это полезно для работ, которые могут занять много времени, но вы все еще хотите
преимущества TTR вытаскивая работу от неотзывчивого работника. Рабочий
может периодически сообщать серверу, что он еще жив и обрабатывает задание
(например, это может сделать это на DEADLINE_SOON). Команда откладывает авто
выпуск зарезервированной работы до TTR секунд с момента подачи команды.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector