2015-03-31 54 views
2

我有關於從PHP調用工匠隊列的問題。 我想讓Beanstalkd隊列中的失敗作業列表,並讓一個按鈕重試。從php調用工匠隊列重試

我想打電話給php artisan queue:retry{id}

於是,我把這個代碼在route.php

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

,並返回錯誤

InvalidArgumentException '有消息' 命令「隊列:重試12「未定義爲 。

你是指其中之一? 隊列:重試 隊列:忘記 隊列:失敗表 隊列:沖水 隊列:失敗 隊列:聽 隊列:訂閱 隊列:工作」

任何一個可以幫助我嗎? 感謝

回答

3

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

更新:(感謝以下@ 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 2017-10-10 21:14:56