在本文章中,我们将更深入地介绍我们常用的 Laravel 部分,以发现我们可以在下一个项目中使用的功能和特性……如果我们了解它们就好了!本系列的第一篇文章是关于 Laravel Scheduler - 它有助于运行计划任务(又名 cron 作业)。
让我们探索一些鲜为人知的调度程序功能:
1. skip() 与 when()
如果您希望仅在某些条件满足时才执行计划任务true
,请使用when()
内联设置此类条件:
$schedule->command('your:command')->when(function () {
return some_condition();
});
skip()
和方法正好相反when()
,如果skip方法返回true
,则不会执行计划任务:
$schedule->command('emails:send')->daily()->skip(function(){
return Calendar::isHolidauy();
});
2. withoutOverlapping()
您可能正在运行一项关键作业,该作业一次只能运行一个实例。这样可以withoutOverlapping()
确保计划任务不会重叠,从而防止潜在的冲突。
$schedule->command('your:command')->withoutOverlapping();
3. 然后Ping()
执行任务后,您可能想要 ping 一个 URL 来通知另一个服务或触发另一个操作。thenPing()
让您无缝地完成这些操作。
$schedule->command('your:command')->thenPing('http://example.com/webhook');
4. 后台运行()
如果您希望计划任务在后台运行而不阻止其他进程。runInBackground()
将帮助您做到这一点:
$schedule->command('your:command')->runInBackground();
5. 甚至在维护模式()
听名字你就能猜出它是干什么的。即使你的应用程序处于维护模式,你也可以执行计划任务。
$schedule->command('your:command')->evenInMaintenanceMode();
现在就这些了,朋友们!尝试一下;在您的任务自动化中使用这些调度程序函数,让您的代码变得更加简单。