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);
相关推荐
打码人的日常分享7 分钟前
智能制造数字化工厂解决方案
数据库·安全·web安全·云计算·制造
三水不滴10 分钟前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
-孤存-1 小时前
MyBatis数据库配置与SQL操作全解析
数据库·mybatis
2301_822366352 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
wangqiaowq3 小时前
MSSQLSERVER 和 SQLEXPRESS 是 SQL Server 中两种不同类型的实例名称
sql
万邦科技Lafite3 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台
自可乐3 小时前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus
toooooop83 小时前
php BC MATH扩展函数计算精度-第三个参数
开发语言·php
weixin_307779134 小时前
C#实现两个DocumentDB实例之间同步数据
开发语言·数据库·c#·云计算
盒马coding4 小时前
深度解密MySQL2PG工具MySQL至PostgreSQL语法全景拆解过程
数据库·mysql·postgresql