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);
相关推荐
广州浮点FLOATLIC39 分钟前
Mentor Graphics浮动许可证管理为什么一到流片节点就失控
java·大数据·数据库·许可证管理·cad 许可证优化
ha_lydms1 小时前
使用SQL导入MaxCompute的数据至Hologres
大数据·sql·dataworks·maxcompute·hologres·odps·datastudio
小王C语言1 小时前
MySQL 库的操作:字符集和校验规则、数据库的增删查改、备份和还原
数据库·mysql
小王C语言1 小时前
MySQL 数据类型:数值类型、字符串类型、日期和时间类型、enum 和 set、find_in_set 查询
android·数据库·mysql
MC皮蛋侠客2 小时前
Redis 系列(六):过期、内存淘汰与内存优化——让 Redis 活得更久
数据库·redis·bootstrap
杜子不疼.2 小时前
模型效果不好时,我现在会先看数据集
数据库
夜雪一千2 小时前
MySQL的事务是什么?原理、ACID、隔离级别与实战详解
数据库·mysql
会编程的土豆2 小时前
从「锁」到「时间」:后端里几个容易混的概念
java·开发语言·数据库·goland
上下求索,莫负韶华3 小时前
笔记-数据库事务和java事务和切面
java·数据库·笔记
黄华SJ520it3 小时前
顶俏洗衣液模式制度开发介绍:S2B2C社交分销+多门店核销系统全解析
前端·数据库·小程序·零售·系统开发