Появляются рабочие для каждой новой работы в beanstalkd

Я строю это веб-приложение для управления сервером. Когда пользователь создает сервер, он помещается в очередь beanstalkd для обработки, обычно это занимает от 1 до 2 минут.

Однако я хочу, чтобы задание было обработано в тот момент, когда оно отправлено. Например, давайте предположим, что есть два пользователя, которые оба строят сервер, очевидно, что эти два задания будут помещены в очередь для обработки. Первый пользователь должен будет ждать 1-2 минуты для обработки задания, но второй пользователь должен будет ждать 1-2 минуты для сборки сервера первого пользователя, затем еще 1-2 минуты для его сервера. встроенный. По сути, это создает своего рода отставание, при котором пользователь должен будет ждать n + 1 минуту для сборки своего сервера.

Я хочу, чтобы этого не происходило, поэтому мне было интересно, можно ли порождать нового работника или что-то подобное в beanstalkd для обработки новой работы в момент ее отправки?

0

Решение

Для задач, которые занимают некоторое время, но должны выполняться одновременно, у вас, как правило, будет готов ряд рабочих. Каждый из них будет подключаться к серверу beanstalkd и ждать, пока работа не станет доступной. Если бы они были отключены, они просто переподключились (хотя я бы остановился на несколько секунд между попытками).

Для запуска нескольких копий часто используется такой инструмент, как «супервизор». Это контролирует запуск / перезапуск рабочих.

0

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

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

По вопросам рекламы [email protected]