我怎样才能只运行一次 Laravel Queue?

Pya*_*ein 2 php laravel laravel-5 laravel-5.1 laravel-queue

我使用 laravel 5.1 Queue 作为我的异步后台功能。但我只想运行该功能 1 次。如果该功能失败,我想做其他过程​​。我如何检测我的工作是否失败?我做得对还是错?我应该改变什么?ps:我是初学者。我在我的控制器中这样使用。

$job = new myjob($var1, $var2);
$this->dispatch($job);
$job->release();
if ($job->attempts() >= 1)
{
    $job->delete();
    //will do other process
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*łek 5

您应该使用--tries带1值的参数,例如:

php artisan queue:work --tries=1
Run Code Online (Sandbox Code Playgroud)

这将只运行每个任务一次,并且在失败时不会重复它。