PHPackages                             imiphp/imi-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. imiphp/imi-queue

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

imiphp/imi-queue
================

imi 框架的队列组件，使用 Redis 作为持久化

v2.1.23(1y ago)8190.6k↑89.1%3MulanPSL-2.0PHPCI failing

Since Jun 29Pushed 1y ago1 watchersCompare

[ Source](https://github.com/imiphp/imi-queue)[ Packagist](https://packagist.org/packages/imiphp/imi-queue)[ RSS](/packages/imiphp-imi-queue/feed)WikiDiscussions 2.0 Synced today

READMEChangelog (10)Dependencies (3)Versions (61)Used By (3)

imi-queue
=========

[](#imi-queue)

[![Latest Version](https://camo.githubusercontent.com/84e24ef8a40fa8acf63dbfd163a6c513a505e2c0af94228f17de8d48ffe11329/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696d697068702f696d692d71756575652e737667)](https://packagist.org/packages/imiphp/imi-queue)[![Php Version](https://camo.githubusercontent.com/4a5c2ab20974058a8bab53ecb30ac4c2e6bb961df6229b7386fdc097ab53dfa8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d2533453d372e342d627269676874677265656e2e737667)](https://secure.php.net/)[![Swoole Version](https://camo.githubusercontent.com/f4210afc3f396a720a75802010218d847f3ba4f7ae5182c570b1fb2504ec9ec3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73776f6f6c652d2533453d342e372e302d627269676874677265656e2e737667)](https://github.com/swoole/swoole-src)[![IMI License](https://camo.githubusercontent.com/2ef6bba3f99465d83dc9e4c2b790fec4371f51bdabb816599e2a200a1808d368/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f696d697068702f696d692d71756575652e737667)](https://github.com/imiphp/imi-queue/blob/master/LICENSE)

介绍
--

[](#介绍)

[imi 框架](https://github.com/imiphp/imi)的队列组件，使用 Redis 作为持久化

支持的特性：

- 消息持久化
- 分布式
- 延时消息
- ACK 机制
- 消费超时机制
- 失败/超时消息重新消费

> 本仓库仅用于浏览，不接受 issue 和 Pull Requests，请前往：

Composer
--------

[](#composer)

本项目可以使用composer安装，遵循psr-4自动加载规则，在你的 `composer.json` 中加入下面的内容:

```
{
    "require": {
        "imiphp/imi-queue": "~2.0.0"
    }
}
```

然后执行 `composer update` 安装。

使用说明
----

[](#使用说明)

> 可以参考 `example`、`tests` 目录示例。

项目配置文件：

```
[
    'components'    =>  [
        'Queue'  =>  'Imi\Queue',
    ],
    'beans' =>  [
        'AutoRunProcessManager' =>  [
            'processes' =>  [
                // 加入队列消费进程，非必须，你也可以自己写进程消费
                'QueueConsumer',
            ],
        ],
        'imiQueue'  =>  [
            // 默认队列
            'default'   =>  'test1',
            // 队列列表
            'list'  =>  [
                // 队列名称
                'test1' =>  [
                    // 使用的队列驱动
                    'driver'        =>  \Imi\Queue\Driver\RedisQueueDriver::class,
                    // 消费协程数量
                    'co'            =>  1,
                    // 消费进程数量；可能会受进程分组影响，以同一组中配置的最多进程数量为准
                    'process'       =>  1,
                    // 消费循环尝试 pop 的时间间隔，单位：秒（仅使用消费者类时有效）
                    'timespan'      =>  0.1,
                    // 进程分组名称
                    'processGroup'  =>  'a',
                    // 自动消费
                    'autoConsumer'  =>  true,
                    // 消费者类
                    'consumer'      =>  'AConsumer',
                    // 驱动类所需要的参数数组
                    'config'        =>  [
                        // redis 连接池名
                        'poolName'  =>  'redis',
                        // redis 键前缀
                        'prefix'    =>  'imi:queue:test:',
                        // 消费循环尝试 pop 的时间间隔，单位：秒（手动调用pop()方法有效）
                        'timespan'  =>  0.1,
                    ]
                ],
            ],
        ],
    ]
]
```

### 消费者类

[](#消费者类)

```
