Laravel 8队列系统的新功能和变化有哪些

  介绍

本文将为大家详细介绍”Laravel 8队列系统的新功能和变化有哪些”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Laravel 8队列系统的新功能和变化有哪些“能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。

Laravel是什么

Laravel是一套简洁,优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来,它可以帮你构建一个完美的网络应用,而且每行代码都可以简洁,富于表达力。

Laravel 8附带了很酷的新特性,并对队列系统的一些更改。在本文中,我们将研究这些特性和更改。

<强>变化

<人力资源/>

<强>倒扣(回退)

已将<代码> retryAfter() 方法和<代码> retryAfter> 倒扣>

<代码> PHP工匠队列:工作> 选——延迟项也已重命名为<代码>——倒扣>

您还应该知道,现在可以将数组传递给<代码>倒扣属性,以指示工人实现指数回退(指数倒扣):

public  backoff 美元;=,(30,60);

或者从<代码>倒扣()方法返回一个数组:

public  function 补偿()   {   ,,,return  [60] 30,,,   }

在这里使用指数回退,我们指示工人在第一次失败后延迟30秒重试作业,然后在每次失败后延迟60秒。

您还可以在<代码>队列:工作> php  artisan 队列:Work 倒扣=30,60

<强>作业过期

排队作业,通知和侦听器的<代码> timeoutAt 属性已重命名为<代码> retryUntil>

使用<代码>美元retryUntil>

您可以将<代码> retryUntil> retryUntil 方法添加:

public  function  retryUntil ()   {   ,,,return 现在()→addDay ();   }

<>强新特性

<强>队列闭包

您现在可以在调度队列闭包时链式调用<代码> catch() 方法:

调度(function  (), {   ,,,//,Job 逻辑……   })→捕捉(function  (Throwable  $ e), {   ,,,//,Handle 失败…   });

如果作业失败,将调用提供给<代码> catch() 方法的闭包。

<强>数据库驱动程序可靠性

当使用数据库队列驱动程序将作业释放回队列时,Laravel现在将在事务内执行操作。这意味着除非添加了新的已发布实例,否则不会从队列中删除作业。这大大减少了作业失败的机会。

<强>复述,驱动程序效率

当使用复述队列驱动程序批量分发一组作业时,Laravel将通过向复述,发送单个命令来执行操作。以前,Laravel曾经向复述,发送多个<代码> rpush 命令,每个作业一个。

<强>职工优雅终止

从Laravel 8开始,工人将优雅退出,并调用由<代码>应用程序::终止()注册的任何终止回调。

<强>工人自我终止

为了避免内存泄漏,通常的做法是不时终止您的工作程序,然后让您的过程监视工具启动新的工作程序。通常是通过添加一个运行<代码>队列:重启令的CRON作业来完成的。

在Laravel 8中,您可以指示工人在处理了一定数量的作业或运行了特定的秒数后退出:

php  artisan 队列:work ——max-jobs=1000,——max-time=3600

<>强命名工人

你现在添加<代码>——名称> 队列:工作> php  artisan 队列:work  - name=

通知添加此功能的主要目的是允许人们自定义工人在运行时如何选择哪个队列来处理任务:

工作人员::popUsing(& # 39;通知# 39;,,function (流行),{   ,,,queues 美元;=,时间()→点(),   ,,,,,,,?,[& # 39;邮件# 39;,,& # 39;人# 39;],   ,,,,,,,,,(& # 39;push-notifications& # 39;,, & # 39;短信# 39;,,& # 39;邮件# 39;,,& # 39;人# 39;];      ,,,foreach  (queues 美元;as  $队列),{   ,,,,,,,if  (!, is_null ($ job =,流行美元(队列)美元)),{   ,,,,,,,,,,,return 美元工作;   ,,,,,,,}   ,,,}   });

Laravel 8队列系统的新功能和变化有哪些