Laravel的队列系统默认是串行处理作业的,这意味着每个作业都要等待前一个作业处理完毕后才能开始处理。但是,有时候我们需要同时处理多个作业,这就需要并发处理。
Laravel通过将队列连接设置为"redis","database"或"beanstalkd"来实现并发处理。这些连接可以处理多个并发作业。
(资料图)
Laravel队列系统还支持作业优先级,这意味着我们可以为不同类型的作业分配不同的优先级。优先级高的作业将在优先级低的作业之前处理。优先级默认为0,值越高表示优先级越高。
我们可以使用--queue
选项在调度作业时指定作业队列。例如,我们可以使用以下代码将作业推送到"high"队列:
ProcessPodcast::dispatch($podcast)->onQueue("high");
然后,我们可以使用以下命令启动一个专用的队列进程来处理高优先级队列:
php artisan queue:work --queue=high
如果一个作业执行时间过长,可能会导致队列堵塞,这就需要设置作业的超时时间。Laravel默认的作业超时时间为60秒。
我们可以在定义作业类时使用--timeout
选项来设置超时时间。例如,以下代码设置超时时间为120秒:
php artisan make:job ProcessPodcast --timeout=120
如果作业在超时时间内没有处理完成,Laravel将尝试终止该作业并将其标记为失败。
Laravel队列系统默认会自动重试作业,如果一个作业失败了,它将被重新推送到队列中,直到达到最大尝试次数。最大尝试次数默认为3,可以在config/queue.php
中进行配置。
如果要禁用作业重试,我们可以在定义作业类时使用--tries
选项将最大尝试次数设置为0:
php artisan make:job ProcessPodcast --tries=0
如果一个作业达到最大尝试次数仍然失败,它将被标记为失败。Laravel默认会将失败的作业写入日志文件。我们还可以在config/queue.php
中配置将失败的作业发送到其他通知渠道,例如电子邮件或Slack。
当然,我们还可以通过手动调用fail
方法来标记一个作业为失败:
/** * Execute the job. * * @return void */public function handle(){ if ($this->somethingWentWrong()) { $this->fail(new Exception("Something went wrong.")); } // Process the podcast...}
关键词:
实时焦点:PHP-web框架Laravel-队列(三)
30年过去 终于看懂了《灌篮高手》
安徽省阜阳市2023-05-03 09:53发布雷电黄色预警_每日速讯
苏家屯区气象台发布大风蓝色预警信号_每日热点
天天百事通!十年磨一剑,他荣获上海市五一劳动奖章!
项目实施有哪些主要阶段 项目实施阶段包括的五个具体阶段
远东酒店实业(00037.HK)获行政总裁邱达伟增持600万股 环球时快讯
当前观察:六个月内第二轮!摩根士丹利拟裁员3000人
《沙丘2》预告即将发布,15张剧照海报揭秘,男主成为沙虫骑士
刨刀_关于刨刀的介绍
美国异动 | 汇丰控股(HSBC.US)涨超5% Q1利润超预期 宣布20亿美元回购
环球播报:银行业危机让美国金融巨头“更庞大”
我不由得加快了脚步作文_脚步 作文 环球动态
不变资本和可变资本数量构成上的比例是资本的_不变资本和可变资本
手机ckplayer怎么安装教程_ckplayer怎么安装-环球热头条
环球热点!中国第10批赴马里维和部队开展全要素防卫演练
加拿大研究:云层中含有耐药细菌
IMF上调2023年亚洲经济增长预期至4.6%
今日观点!太行山大峡谷景区游客滞留 景区:已妥善处理,景区限流建议错峰出行
江门高速服务区 漫画展“五一”上新|天天热头条
全球即时:口袋公园,建好还需管好(视线·城市更新)
代号鸢诸葛亮什么时候出场 诸葛亮剧情介绍_环球速看料
前打竿怎么调漂 前打杆
国际旅行如何捡漏买到便宜机票 记者梳理帮你解答|当前动态
这个省,同时拟任10位县(市、区)委书记
世界速递!比特币交易平台排名十大比特币交易平台_比特币交易平台排名
手机导航怎么用节省流量_手机导航怎么用
超越《狂飙》《三体》,《漫长的季节》预定年度最佳国产剧 环球聚看点
主营业务成本如何计算(主营业务成本怎么计算)
骑马与砍杀无双三国激活码大全 骑马与砍杀无双三国激活码 天天速讯
珍惜吧,再不买就没有了,最后一代纯燃油卡宴还值得买吗? 热头条
致敬每一个努力奋斗的平凡者详细内容
微光
全球热文:19起!今年资本的钱都投到了哪里?
胡军刘烨-胡军主演的电视剧全部
中国最好的医疗资源在商业保险医疗,上海几个最好的三甲公立医院都有特需门诊|全球热消息
相关新闻