2015-03-31 3 views
2

У меня возникла проблема вызова очереди мастеров из php. Я хочу сделать список неудачных заданий в очереди Beanstalkd и сделать кнопку для повторной попытки.Calling Artisan Queue Retry from php

Я хочу назвать php artisan queue:retry{id}

Итак, я ставлю этот код в route.php

Route::get('retry/{id}', function($id){ 
    Artisan::call("queue:retry $id"); 
}); 

И вернуть ошибку

InvalidArgumentException 'с сообщением' очереди команд»: повтор 12 "- не определено.

Вы имели в виду один из них? очередь: повторить очереди: забыть очереди: Failed стола очереди: флеш очереди: не удалась очереди: слушать очереди: подписаться очереди: работа»

Любой может мне помочь? Благодаря

ответ

3

Artisan::call('queue:retry', ['id' => $id]);

Update: (спасибо ответить на @ BakerStreetSystems Это ниже)

Artisan::call('queue:retry', ['id' => [$id]]); 
6

Я просто попытался ответить limonte и, хотя он был очень близок к тому, что мне было нужно, я отметил, что RetryCommand.php ожидает, что значение id будет массивом, поэтому у вас должен быть встроенный массив следующим образом:

Artisan::call('queue:retry', ['id' => [$id]]); 
+1

Этот ответ правильный и определенно не увлекательный для устранения неполадок. https://github.com/laravel/framework/blob/5.2/src/Illuminate/Queue/Console/RetryCommand.php#L30-L41 https://github.com/laravel/framework/blob/5.2 /src/Illuminate/Queue/Console/RetryCommand.php#L94 – lasec0203