Я использую очередь 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](https://i.stack.imgur.com/J5NJb.png)
Как правильно удалить эти задания из очереди?