支持 Laravel.io 的持续发展 →

Laravel 高级:你可能不知道的 Top 5 定时器功能

在本系列文章中,我们将深入探讨我们经常使用的 Laravel 的部分,揭示我们可以用于下一个项目的功能,前提是我们知道它们!本系列的第一篇文章是关于 Laravel 调度器,它有助于运行定时任务(即 cron 作业)。

让我们探索一些不太为人所知的功能

1. skip() & when()

如果您希望您的定时任务仅在某个条件为 true 时执行,请使用 when() 设置这样的条件

$schedule->command('your:command')->when(function () {
    return some_condition();
});

skip() 方法与 when() 方法相反。如果跳过方法返回 true,则定时任务将不会执行

$schedule->command('emails:send')->daily()->skip(function(){
    return Calendar::isHolidauy();
});

2. withoutOverlapping()

您可能正在运行一个只应该同时有一个实例运行的临界作业。这就是 withoutOverlapping() 确保定时任务不会重叠、防止潜在冲突的地方。

$schedule->command('your:command')->withoutOverlapping();

3. thenPing()

在执行任务后,您可能希望ping一个URL来通知另一个服务或触发另一个操作。 thenPing() 就能让您无缝完成这项操作。

$schedule->command('your:command')->thenPing('http://example.com/webhook');

4. runInBackground()

如果您希望您的定时任务在后台运行,而不会阻止其他进程。 runInBackground() 将帮助您做到这一点

$schedule->command('your:command')->runInBackground();

5. evenInMaintenanceMode()

您可以根据名称猜到它的作用。您可以在应用程序处于维护模式时执行定时任务。

$schedule->command('your:command')->evenInMaintenanceMode();

这就结束了,朋友们!试着用它们;在任务自动化的任务中使用这些调度器函数,让您的代码更加简单。上述所有内容都已经在我们的 Twitter 上逐一分享。 关注我们在 Twitter 上的账号;你会喜欢它的。

继续探索,继续编码,不断拓展Laravel能达成的边界。下次再见,祝您安排愉快!🚀

最后更新 1个月前。

driesvints, marcelzutphen, fosterushka, saltyfishh9, issacnguyentx2022 赞同了这篇文章

5
喜欢这篇文章吗? 让作者知道并为他们鼓掌!

其他你可能喜欢的文章

2024年3月11日

如何使用Larastan将您的Laravel应用从0到9提升

在Laravel应用执行前找到错误是可能的,多亏了Larastan,这是一个...

阅读文章
2024年7月19日

无需特性标准化API响应

我注意到,大多数用于API响应的库都是使用特性实现的,并且...

阅读文章
2024年7月17日

通过Discord通知在你的Laravel项目中收集反馈

如何在Laravel项目中创建一个反馈模块,并在收到信息时接收Discord通知...

阅读文章

我们想感谢这些 极其出色的公司 对我们的支持

您的标志在这里?

Laravel.io

Laravel问题解决、知识共享和社区建设的门户。

© 2024 Laravel.io - 版权所有。