腾讯云 CMQ 云消息队列 For Laravel

简介

腾讯云消息队列(Cloud Message Queue,CMQ)是一种分布式消息队列服务,它能够提供可靠的基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)之间的收发消息,存储在可靠有效的 CMQ 队列中,防止消息丢失。CMQ 支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。#官方文档

Github

https://github.com/freyo/laravel-queue-cmq

安装

composer require freyo/laravel-queue-cmq:5.5.*

如果使用的是5.4

composer require freyo/laravel-queue-cmq:5.4.*

配置

加载Provider

'providers' => [
  // ...
  Freyo\LaravelQueueCMQ\LaravelQueueCMQServiceProvider::class,
]

配置.env

QUEUE_DRIVER=cmq #指定默认队列为CMQ

CMQ_SECRET_KEY=
CMQ_SECRET_ID=

CMQ_QUEUE_HOST=https://cmq-queue-region.api.qcloud.com #CMQ API地址
CMQ_QUEUE=queue_name #默认监听队列名称
CMQ_QUEUE_POLLING_WAIT_SECONDS=30 #队列轮询间隔时间

CMQ_TOPIC_ENABLE=false #如果你想使用TOPIC模式请填写true
CMQ_TOPIC_FILTER=routing # 指定TOPIC工作方式 routing(路由)或msgtag(标签)
CMQ_TOPIC_HOST=https://cmq-topic-region.api.qcloud.com #CMQ TOPIC API地址
CMQ_TOPIC=topic_name #默认监听TOPIC队列名称

支持的地域:

gz (广州), sh (上海), bj (上海)

在腾讯云console建立好队列后,根据所选地域替换下方API的{region}部分即可

公网API地址:

cmq-queue-{region}.api.qcloud.com
cmq-topic-{region}.api.qcloud.com

内网API地址(如果你使用的腾讯云CVM):

cmq-queue-{region}.api.tencentyun.com
cmq-topic-{region}.api.tencentyun.com

Supervisor配置

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app.com/artisan queue:work cmq --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app.com/worker.log

上树

//只使用普通队列,使用默认队列名称可省略`onQueue`
dispatch((new Job)->onQueue('queue-name'));

//使用TOPIC队列和标签模式,多个标签用英文逗号分隔
dispatch((new Job)->onQueue('tag1,tag2,tag3'));

//使用TOPIC队列和路由模式
dispatch((new Job)->onQueue('routing-key'));

标签匹配功能说明 https://cloud.tencent.com/document/product...
路由键匹配功能说明 https://cloud.tencent.com/document/product...

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!