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);
相关推荐
Irene19912 分钟前
(课堂笔记)SQL基础语法分类总结表
数据库·sql
你觉得脆皮鸡好吃吗17 分钟前
SQL注入 手工注入
网络·数据库·sql·安全·web安全·网络安全学习
dishugj23 分钟前
psql-客户端工具日常使用命令整理
数据库·postgresql
m0_7375393725 分钟前
数据库主从复制和读写分离
数据库·oracle
y = xⁿ32 分钟前
MySQL学习日记:关于MVCC及一些八股总结
数据库·学习·mysql
m0_737539371 小时前
SQL语言续2
数据库·sql
云边有个稻草人1 小时前
KingbaseES 高可用集群故障恢复实践与运维落地
数据库·数据安全·高可用集群·故障恢复·国产数据库·kes·运维实践
要做一个小太阳1 小时前
Consul SD 常见标签
运维·数据库·consul
爱喝雪碧的可乐1 小时前
【Redis 毁灭计划】7 大高危操作打崩线上服务!从缓存雪崩到数据库宕机,90% 程序员都踩过的坑
开发语言·网络·redis·php
十五年专注C++开发1 小时前
HDF5: 大数据的 “超级容器“
大数据·数据库·c++·hdf5