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
相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
damoluomu4 天前
挑 PHP CMS 之前,先学会看它的协议
php
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
大勇前进4 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu4 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile4 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白804 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙4 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端