Download the PHP package bang/queue without Composer
On this page you can find all versions of the php package bang/queue. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package queue
bang-queue for ThinkPHP8
描述
基于 workerman + thinkphp8 + redis,实现的一个任务队列
安装
composer require bang/queue
配置
配置文件位于
config/bang_queue.php
配置说明
仅支持Redis驱动,没有Redis请自行安装
配置解释
default, 对应options下的连接配置
count,开启的消费者的进程数,按照自己服务器配置来衡量
isDynamic,是否需要动态监听。懒人必备,这样不必去配置listenList了。有一定的性能消耗
processPort,开启动态监听时,需要启动一个端口来监听。请确保你设置的端口没被占用。默认是9500
loggerChannel,日志通道。具体请看thinkphp8手册的日志处理。留空则获取它默认的配置通道
config,是workerman的一个日志、pid、stdoutFile的一些配置。一般来说不需要做过多的修改
pidFileName,pid文件名path,这些配置存储的目录。相对于项目的根目录stdoutFile,stdoutFile文件名logFile,日志文件名
options,连接列表,里面可以配置各种连接,不过这些必须都是Redis的配置
host,Redis链接port,端口password,密码。如没设置,留空即可select,select 的 database。可以有效避免和别的业务冲突prefix,前缀,一般留空即可max_attempts,消费失败后,重试次数retry_seconds,重试间隔,单位秒。
重试说明
创建任务类
任务类 必须
implementsbang\queue\Consumer
以下写一个例子
发布任务
第一个,
bang\queue\Queue::send($queueName , $data, $delay = 0)第二个,
bang\queue\Queue::sendDynamic($class , $data, $delay = 0)
第一个命令说明
$queueName,队列名,优先获取 配置中的listenList的映射$data,需要传输到消费者中的参数$delay,意思在n秒后执行,传0或不传,就是立即执行
第一个命令说明
$queueName,具体的消费者类路径,例子:可以传app\queue\test\Consume或者app\queue\test\Consume::class。用这种方法,消费者类最好定义好static $queue的队列名$data,需要传输到消费者中的参数$delay,意思在n秒后执行,传0或不传,就是立即执行
监听任务并执行
如果需要进程常驻,则可以运行 &> php think bang_queue:work start -d true
两种,具体的可选参数可以输入命令加 --help 查看
注意事项
为了在长时间中,mysql有断开的风险。建议在
database.php配置文件中break_reconnect设置成true。也就是支持断线重连功能。有问题请联系 邮箱:
[email protected]