thinkphp下的Job队列处理

需要think-queue扩展,没有的请composer安装一下

bash 复制代码
    "require": {
        "php": ">=7.2.5",
        "topthink/framework": "^6.1",
        "topthink/think-orm": "^2.0",
        "topthink/think-multi-app": "^1.0",
        "topthink/think-filesystem": "^2.0",
        "firebase/php-jwt": "^6.2",
        "overtrue/pinyin": "~4.0",
        "hg/apidoc": "^5.0",
        "overtrue/wechat": "^3.3",
        "qiniu/php-sdk": "^7.4",
        "aliyuncs/oss-sdk-php": "^2.4",
        "qcloud/cos-sdk-v5": "^2.3",
        "guzzlehttp/guzzle": "^6.0",
        "psr/container": "1.1.1",
        "phpmailer/phpmailer": "^6.5",
        "overtrue/easy-sms": "^2.1",
        "upyun/sdk": "^3.5",
        "aws/aws-sdk-php": "^3.250",
        "fastknife/ajcaptcha": "^1.2",
        "topthink/think-worker": "^3.0",
        "chinayin/ip2region": "^2.0",
        "topthink/think-throttle": "^1.3",
        "topthink/think-queue": "^3.0",
        "alibabacloud/ocr-api-20210707": "1.0.1",
        "alibabacloud/darabonba-stream": "^0.0.1",
        "phpoffice/phpexcel": "^1.8",
        "alibabacloud/facebody-20191230": "1.0.2",
        "elasticsearch/elasticsearch": "v7.10.0",
        "endroid/qrcode": "^4.3",
        "predis/predis": "^2.2",
        "ext-openssl": "*",
        "godruoyi/php-snowflake": "^2.2",
      "ext-sodium": "*",
      "ext-bcmath": "*",
        "ext-json": "*",
        "jpush/jpush":  "*",
      "ext-ftp": "*",
        "alibabacloud/ocr-20191230": "^1.0"
    }

1,在用到的地方进行队列插入

bash 复制代码
CdrJob::dispatch([$cdr], [], $queueName);

如果需要延迟,可以这样

bash 复制代码
Openai1Job::dispatchSece(60 , [$cdr], [], 'Openai1Job');

2,Job下获取队列处理,例如

bash 复制代码
namespace app\job;

use app\job\basic\BaseJobs;
use app\job\basic\QueueTrait;
use think\facade\Log;

/**
 * OpenAI处理
 * Class Openai1Job
 * @package app\job
 */
class Openai1Job extends BaseJobs
{

    use QueueTrait;

    public function doJob($cdr)
    {
        try {
            //AI分析处理
            $services = app()->make(\app\common\service\api\OpenaiService::class);
            return $services::OpenaiConsumer($cdr);
        } catch (\Throwable $e) {
            Log::error('Openai1Job,AI分析失败原因:' . $e->getMessage());
            return false;
        }
    }
}

3,添加守护进程,可通过宝塔安装进程守护管理器管理

bash 复制代码
php think queue:listen --queue Openai1Job
相关推荐
三84410 小时前
文件包含基础
php
weixin_4316004410 小时前
NestJS 入门(7):生命周期钩子——构造函数和 `OnModuleInit` 差在哪?
前端·后端·学习·node.js·nest.js
小强库计算机毕业设计10 小时前
基于 Spring Boot + Vue3 的校园管理系统
java·spring boot·后端·项目实战·管理系统·技术分享·校园管理系统实战
canonical_entropy10 小时前
关于《Mission Driver:Loop Engineering 的一种通用参考实现》的补充说明
后端·agent·ai编程
__zRainy__11 小时前
Node系列 · Node基础:Node.js 概述
后端·node.js
星火102411 小时前
【LangChain4j系列06】ChatMemory 对话记忆管理
人工智能·后端
netCode11 小时前
Git一文带你理解如何使用
后端
Amir_zy11 小时前
Redis测试方法全攻略:冒烟、压测与稳定性验证
redis·压力测试
睡觉时不困44211 小时前
12.LangChain 1.0+ 第二篇:Prompt、结构化输出与 LCEL 组件组合.发布清单
后端
SomeB1oody12 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程