Работа касания Pheanstalk, чтобы попросить больше времени

Как заставить моего работника попросить больше времени для работы на работе?

Я использую библиотеку pheanstalk.
Работа — это разбор файла, который в зависимости от файла может занять более 60 секунд, по умолчанию ttr.

while( $job = $pheanstalk->watch($tubeName)->reserve() ){
// get the job body
$parserExec = unserialize( $job->getData() );

// execute parser - will take more than 1 min most of the time
exec( $parserExec['command'] );

// rest of the stuff - delete job etc
}

Я новичок в очереди вещей, и я изучал примеры, которые я нашел в Интернете. Если я делаю это неправильно, пожалуйста, скажите. Я пытался получить задания и написать условное выражение на основе оставшегося времени, но не смог заставить его работать. Когда я использую функцию jobStats в pheanstalk, результатом является массив приватных объектов. Я хочу, чтобы скрипт дождался завершения exec, сколько бы времени это ни заняло.

2

Решение

У вас есть два варианта продлить время работы на работе. Первый вариант — установить собственное значение TTR, когда задание вставляется в очередь. По умолчанию это 1 минута, но вы можете установить это так, как вам нужно. Это, вероятно, ваш лучший вариант. Предполагая, что вы используете pheanstalk, чтобы создать работу, которую вы можете сделать

$pheanstalk->putInTube(tube, data, priority, delay, ttr)
or
$pheanstalk->put(data, priority, delay, ttr);

Ты можешь позвонить $pheanstalk->touch($job) Это приведет к сбросу обратного отсчета на вашем TTR, но вы все равно останетесь, вы все равно будете ограничены установленным значением TTR, которое в вашем случае составляет 1 минуту.

3

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

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

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