PHPackages                             busyphp/queue - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. busyphp/queue

ActiveLibrary[Queues &amp; Workers](/categories/queues)

busyphp/queue
=============

基于ThinkPHP官方改进的一个消息队列服务，它支持消息队列的一些基本特性，发布，获取，执行，删除，重发，失败处理，延迟执行，超时控制，多队列，内存限制 ，启动，停止，守护等

v3.0.0(2y ago)5322Apache-2.0PHPPHP &gt;=8.0.0

Since Nov 13Pushed 2y ago1 watchersCompare

[ Source](https://github.com/busyphp/queue)[ Packagist](https://packagist.org/packages/busyphp/queue)[ Docs](http://www.harter.cn/?form=BusyPHP&plugin=busyphp/queue)[ RSS](/packages/busyphp-queue/feed)WikiDiscussions 3.0 Synced 1w ago

READMEChangelog (5)Dependencies (4)Versions (7)Used By (2)

消费队列模块
======

[](#消费队列模块)

安装方式
----

[](#安装方式)

```
composer require busyphp/queue
```

> 安装完成后可以通过后台管理 &gt; 开发模式 &gt; 插件管理进行 `安装/卸载/管理`

命令行
---

[](#命令行)

`cd` 到到项目根目录下执行

### `queue:work` 命令

[](#queuework-命令)

> 该命令将启动一个 work 进程来处理消息队列

```
php think queue:work
```

参数默认值说明connectionsync设置队列连接器名称，默认依据 `config/queue.php` 中的 `default` 确定--queuedefault设置执行的队列名称--once-仅处理队列上的下一个任务后就退出--delay0如果本次任务执行抛出异常且任务未被删除时，设置其下次执行前延迟多少秒--memory128该进程允许使用的内存上限，以 M 为单位--timeout60该进程的允许执行的最长时间，以秒为单位--sleep3如果队列中无任务，则多长时间后重新检查--tries0如果任务已经超过尝试次数上限，0为不限，则触发当前任务类型下的failed()方法### `queue:listen` 命令

[](#queuelisten-命令)

> listen命令所在的父进程会创建一个单次执行模式的work子进程，并通过该work子进程来处理队列中的下一个消息，当这个work子进程退出之后，listen命令所在的父进程会监听到该子进程的退出信号，并重新创建一个新的单次执行的work子进程

```
php think queue:listen
```

参数默认值说明connectionsync设置队列连接器名称，默认依据 `config/queue.php` 中的 `default` 确定--queuedefault设置执行的队列名称--delay0如果本次任务执行抛出异常且任务未被删除时，设置其下次执行前延迟多少秒--memory128子进程允许使用的内存上限，以 M 为单位--timeout60子进程的允许执行的最长时间，以秒为单位--sleep3如果队列中无任务，则多长时间后重新检查--tries0如果任务已经超过尝试次数上限，0为不限，则触发当前任务类型下的failed()方法### `queue:failed` 列出所有失败的任务

[](#queuefailed-列出所有失败的任务)

```
php think queue:failed
```

### `queue:flush` 刷新所有失败的任务

[](#queueflush-刷新所有失败的任务)

```
php think queue:flush
```

### `queue:forget` 强制执行一条失败的任务

[](#queueforget-强制执行一条失败的任务)

```
php think queue:forget id 1(失败任务ID)
```

### `queue:retry` 将一批失败的任务进行重试

[](#queueretry-将一批失败的任务进行重试)

```
php think queue:forget id 1,2,3
```

### `queue:restart` 重启进程

[](#queuerestart-重启进程)

```
php think queue:restart
```

配置 `config/busy-queue.php`
--------------------------

[](#配置-configbusy-queuephp)

```
