我已经按照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();
}
我在功能级别上遇到了故障,但我想知道我是否可以在控制台的内核级别使用另一级别的遏制?
谢谢!
阿德里安
答案 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();