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
相关推荐
独断万古他化8 分钟前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
我爱加班、、18 分钟前
Websocket能携带token过去后端吗
前端·后端·websocket
一 乐41 分钟前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
80530单词突击赢42 分钟前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
啦啦啦_999943 分钟前
Redis-0-业务逻辑
数据库·redis·缓存
hdsoft_huge1 小时前
1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
vue.js·spring boot·后端
自不量力的A同学1 小时前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
fengxin_rou1 小时前
[Redis从零到精通|第四篇]:缓存穿透、雪崩、击穿
java·redis·缓存·mybatis·idea·多线程
lekami_兰1 小时前
RabbitMQ 延迟队列实现指南:两种方案手把手教你搞定
后端·rabbitmq·延迟队列
ThatITs2 小时前
【无标题】
php