Beanstalkd Queue либо не работает, либо работает бесконечно - PullRequest
0 голосов
/ 10 января 2019

Я использую очередь Beanstalkd для развертывания заданий в моем приложении Laravel 5.3. Я использую Laravel Forge для администрирования сервера.

У меня есть один из двух сценариев:

1) Я установил максимальное количество попыток, в результате чего каждое задание, помещаемое в очередь, будет помещено в таблицу невыполненных заданий - даже если его задание выполнено успешно, что приведет к исключению в таблице заданий:

Illuminate\Queue\MaxAttemptsExceededException: A queued job has been attempted too many times. The job may have previously timed out

И это в моем журнале ошибок:

Pheanstalk\Exception\ServerException: Server reported NOT_FOUND

2) Если я удаляю максимальное количество попыток, задания выполняются успешно, но в бесконечном цикле.

Я предполагаю, что я не удаляю эти задания из очереди должным образом, поэтому в сценарии № 1 задание не выполняется, потому что оно просто хочет продолжить работу.

Мой контроллер отправляет мою работу в очередь следующим образом:

  Queue::push('App\Jobs\UpdateOutlookContact@handle', ['userId' => $cs->user_id, 'memberId' => $member->id, 'connection' => $connection]);

Вот функция управления моей работой:

 public function handle($job, $data)
{
    Log::info('Outlook syncMember Job dispatched');

    $outlook = new Outlook();
    $outlook->syncMember($data['userId'], $data['memberId'], $data['connection']);
    $job->delete();
} 

Вот изображение моей конфигурации очереди из админ-панели Laravel Forge. В настоящее время я использую очередь по умолчанию. Если значение «Пытается» изменить на ЛЮБОЕ, задания завершаются успешно, но выполняются в бесконечном цикле.
enter image description here

Как правильно удалить эти задания из очереди?

...