laravel - Laravel 排队作业的属性优先级
问题描述
我很难弄清楚 laravel 工作中属性的优先级是什么。目前,我有一个工作类tries
和timeout
属性,如下所示:
class ProcessSmsJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 3;
public $timeout = 300;
public function __construct()
{
//
}
public function handle()
{
//
}
}
比如说,在服务器中,队列工作者具有不同的属性,例如。tries = 1
和timeout = 700
。我想知道的是,如果我将此代码推送到服务器,服务器队列工作者中定义的属性(尝试、超时)是否优先于当前定义的属性,或者服务器是否会根据此作业的属性运行队列这个工作?
另外,一个不相关的问题,如果有一个作业tries = 3
并且该作业在第二次尝试时成功执行,那么记录不会存储在 failed_jobs 表中,对吗?那么有没有办法确定作业完成执行需要多少次尝试?
解决方案
该文档指出:
指定作业可以尝试的最大次数的一种方法是通过
--tries
Artisan 命令行上的开关。这将适用于工作人员处理的所有作业,除非正在处理的作业指定了更具体的尝试次数
内部$tries
作业类优先。
超时也是如此。但请确保您的$timeout
值永远不会大于配置文件retry_after
中的设置。queue.php
关于你的第二个问题:Laravel 本身正在跟踪它尝试工作的次数。所以也许工作本身有一个属性。核实。否则,您可以尝试自己实现一个计数器。
推荐阅读
- sql - 如何在pgsql中获得朋友的朋友
- winforms - 如何在 SQL 查询中使用字符串变量作为表名
- javascript - 奇怪的未捕获类型错误:无法设置属性“onclick”为空
- c# - 安装 Newtonsoft.Json 不工作 - 发生错误
- ftp - 如何使用 NiFi 处理器从 FTP 服务器中删除文件?
- javascript - 下拉链接不会在块中显示
- mongodb - 通过 Mongoose 模式将数组存储在 Mongodb 集合中
- c# - 使用 ExifTool 以编程方式从 .indd 文件中提取缩略图
- javascript - Split(" ") 3 个空格返回 2 个空字符串而不是 1 个?
- django-rest-framework - JWT 身份验证问题