Резервная функция Pheanstalk

Я только начал использовать pheanstalk, и у меня возникла проблема с резервной функцией. У меня есть следующий код для рабочего скрипта:

<?php
//... code that requires the autoload.php page among and other

$queue = new Pheanstalk_Pheanstalk("127.0.0.1:11300");
$queue->watch("action_tube");
$job = $queue->reserve();

//... code that would then output the information obtained from the job
?>

Проблема, с которой я сталкиваюсь, заключается в том, что код всегда застревает при предварительном формировании функции резерва. Я точно знаю, что он застрял там, потому что я попытался запустить этот код в браузере и использовать echo комментируя код, чтобы точно определить, где код застревает. Как будто внутри резервной функции происходит бесконечный цикл while.

Например, если бы я закомментировать $job = $queue->reserve()код будет свободно уменьшаться, и страница будет немедленно загружаться, однако, если я не закомментирую это, загрузка круга в браузере будет продолжаться вечно.

ВОПРОС: Почему у меня может быть эта проблема? Это нормально для резервной функции? Он просто ждет, пока что-то появится в очереди? У меня действительно есть "action_tube" очередь, созданная из предыдущего сценария, поэтому я думаю, что reserve Функция будет принимать некоторые из них. Может ли состояние очереди вызвать остановку резервной функции? Любая обратная связь с благодарностью!

0

Решение

Запас Beanstalk будет работать вечно, пока работа не будет готова

reserve блокирует, пока работа не будет готова, возможно, навсегда. Если это нежелательно, мы можем вызвать резерв с тайм-аутом (в секундах), как долго мы хотим ждать, чтобы получить работу. Если такой резерв истекает, он вернется None:

>>> beanstalk.reserve(timeout=0) is None
True

Нашел это Вот

2

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

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

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