bozerkins / php-message-queue
基于文件的简单PHP消息队列
v0.1.2
2017-07-21 21:19 UTC
Requires
- symfony/options-resolver: ^3.2
Requires (Dev)
- phpunit/phpunit: 5.5.*
- symfony/var-dumper: ^3.2
This package is auto-updated.
Last update: 2024-08-29 04:19:58 UTC
README
这是一个简单的PHP消息队列实现(或称为消息队列),它可以以FIFO的方式写入和读取消息。
安装
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联系我