bozerkins/php-message-queue

基于文件的简单PHP消息队列

v0.1.2 2017-07-21 21:19 UTC

This package is auto-updated.

Last update: 2024-08-29 04:19:58 UTC


README

这是一个简单的PHP消息队列实现(或称为消息队列),它可以以FIFO的方式写入和读取消息。

Build Status MIT Licence

安装

composer require bozerkins/php-message-queue

创建队列

要定义一个队列,您首先需要定义一些环境配置。队列消息系统的环境定义了用于操作的操作文件夹。

$queue = new \MessageQueue\Queue(
    new \MessageQueue\Environment(
        [
            'dir' => '/var/my-queue-folder',
            'queue' => 'my-queue'
        ]
    )
);

您可以向队列中写入并从队列中读取。这些都是基本操作。

注意:您可以使用多个进程。消息队列使用flock(),所以不应该有问题。

# write two messages
$queue->write(
    [
        'my message', 
        'my second message'
    ]
);

# read two messages
print_r($queue->read(2));

出于几个优化原因,队列不会自动删除消息。为了从已读取的消息中释放一些磁盘空间,请不时运行此命令。请注意,此操作对磁盘写入影响很大(当大量消息正在传递时)

$queue->recycle();

为了优化队列的读取,库使用缓存结构。消息以块的形式添加到文件系统缓存中,默认单块大小为100条消息。如果您打算一次从队列中读取超过100条消息,请将配置选项'rotate_amount'更改为更大的数字。

$queue = new \MessageQueue\Queue(
    new \MessageQueue\Environment(
        [
            'dir' => '/var/my-queue-folder',
            'queue' => 'my-queue',
            'rotate_amount' => 200
        ]
    )
);

联系方式

如果您想改进这个库,请随时提交合并请求或通过b.ozerkins@gmail.com联系我