Laravel调度容器

时间:2018-04-08 05:16:43

标签: laravel

我已经按照Laravel的文档实施了计划任务: https://laravel.com/docs/5.5/scheduling

它的工作正常,但我想知道什么是最好的方式来控制任务,所以如果一个失败,其他人仍然是好的去。

我使用此功能来处理调度并在控制台的内核中调用特定任务:

protected function schedule(Schedule $schedule)
{
        $schedule->call(function () {
            echo 'imagine this one will fail';
        })->daily();

        $schedule->call(function () {
            echo 'this one always succeed';
        })->daily();
} 

我在功能级别上遇到了故障,但我想知道我是否可以在控制台的内核级别使用另一级别的遏制?

谢谢!

阿德里安

1 个答案:

答案 0 :(得分:0)

如果您不关心异常并且只想继续处理计划任务,请在rescue帮助程序方法中包装每个$schedule->call的内容。它仍会报告异常但允许继续处理:

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        rescue(function () {
            echo 'imagine this one will fail';
        });
    })->daily();

    $schedule->call(function () {
        rescue(function () {
            echo 'this one always succeed';
        });
    })->daily();
} 

如果第一个参数确实导致异常,Rescue还会采取第二个参数来执行操作:

$schedule->call(function () {
    rescue(function () {
        echo 'imagine this one will fail';
    }, function () {
        event(new ScheduledTaskFailed('some task blah blah...'));
    });
})->daily();