thinkphp6 queue队列的maxTries自定义

前景需求:在我们用队列的时候发现maxtries的个数时255次,这个太影响其他队列任务

我目前使用的thinkphp版本是6.1

第一部定义一个新的类

复制代码
CustomDataBase(我用的mysql数据库存放的队列)

重写__make 和createPlainPayload方法

复制代码
<?php
namespace app;

use think\Db;
use think\queue\connector\Database;

class CustomDataBase extends Database
{
// 此方法必须有,具体原因自己看源码吧
    public static function __make(Db $db, $config)
    {
        $connection = $db->connect($config['connection'] ?? null);

        return new self($connection, $config['table'], $config['queue'], $config['retry_after'] ?? 60);
    }
    protected function createPlainPayload($job, $data)
    {
        return [
            'job'      => $job,
            'maxTries' => 22,
            'timeout'  => null,
            'data'     => $data,
        ];
    }
}

第二步修改queue.php文件的配置

为什么要重写类,自己要点Queue::push(),查看源码,因为我的项目通篇用的都是用的类名,最简单的是重写,当然你也可以自己在push的时候写对象,对象里面定义属性$tries=10;

复制代码
Queue::push(EmailJob::class, $email->id);
相关推荐
xj198603196 分钟前
maven导入spring框架
数据库·spring·maven
ritxgt00619 分钟前
MySQL出现Waiting for table metadata lock的原因以及解决方法(已亲测)
数据库·mysql
小跌—29 分钟前
Redis的string数据类型
数据库·redis·缓存
山野02029 分钟前
index.php 和 php
开发语言·php
Web打印1 小时前
Phpask(php集成环境)之02配置php
开发语言·php
清水白石0081 小时前
函数签名内省实战:打造通用参数验证装饰器的完整指南
java·linux·数据库
知识分享小能手1 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 事务和锁 — 语法知识点及使用方法详解(13)
数据库·学习·sqlserver
之歆1 小时前
iSCSI + GFS2 + cLVM 共享存储完全指南
数据库
一个天蝎座 白勺 程序猿1 小时前
KingbaseES约束机制:数据迁移中的数据完整性保障
开发语言·数据库·kingbase·kingbasees
软件派1 小时前
数据库技术探秘:JDBC、ODBC、CDC与LOAD的深度解析
数据库