thinkphp下的Job队列处理
需要think-queue扩展,没有的请composer安装一下
"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,在用到的地方进行队列插入
CdrJob::dispatch([$cdr], [], $queueName);
如果需要延迟,可以这样
Openai1Job::dispatchSece(60 , [$cdr], [], 'Openai1Job');
2,Job下获取队列处理,例如
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,添加守护进程,可通过宝塔安装进程守护管理器管理
php think queue:listen --queue Openai1Job