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
相关推荐
IT_陈寒25 分钟前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
ikoala25 分钟前
让 Codex 自己查账:一个省 token 的小技巧
前端·后端·ai编程
wo_jack4 小时前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
量化分析码农5 小时前
【Python量化波动率实战 02】波动率会传染:EWMA 指数加权给近期行情更大话语权
后端
GISer_Jing6 小时前
如何学习Agent
后端·langchain
我不会起名字3227 小时前
Redis 从 0 到 1(三十三):机器断电 Redis 起不来——AOF/RDB 损坏的 4 步抢救流程
redis·数据恢复·aof·rdb·排查
大白玉米7 小时前
MoxPlayer 弹幕播放器源码智能解析线路管理系统自研内核
php
JWASX7 小时前
【Go】map 源码解析 - group
后端·golang·map·源码分析
量化分析码农8 小时前
【Python量化波动率实战 01】波动率是怎么算的:年化、滚动与区间估计一次讲清
后端
特立独行的猫A8 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python