inteve / message-queue
简单的消息队列
v2.0.0
2023-11-02 14:05 UTC
Requires
- php: 7.4 - 8.2
- nette/utils: ^2.4 || ^3.0 || ^4.0
- phig/phig: ^1.2
Requires (Dev)
- nette/tester: ^2.4
This package is auto-updated.
Last update: 2024-08-31 00:33:50 UTC
README
简单的消息队列
安装
composer require inteve/message-queue
Inteve\MessageQueue 需要 PHP 7.4.0 或更高版本。
使用
$exceptionHandler = function (\Throwable $e) { \Tracy\Debugger::log($e, \Tracy\Debugger::EXCEPTION); }; $dateTimeFactory = new MyDateTimeFactory; // implementation of Phig\DateTimeFactory $adapter = new MemoryAdapter($exceptionHandler); $manager = new Manager($adapter, $dateTimeFactory);
插入消息
$manager->create( queue: 'name-of-queue', data: [ 'field' => 'value', 'field2' => 'value2', ] );
消费消息
从指定队列处理消息
$manager->fetch( queue: 'name-of-queue', handler: function (array $data) { $data['field']; $data['field2']; } );
从所有队列处理消息(通过 $exceptionHandler
记录丢失的处理程序)
$message = $manager->multiFetch( handlers: [ 'name-of-queue' => function (array $data) { $data['field']; $data['field2']; } 'name-of-queue-B' => function (array $data) { $data['field']; $data['field2']; } ], limit: 10 // number of messages processed in multiFetch() call );
从特定队列处理消息
$message = $manager->multiFetch( handlers: [ 'name-of-queue' => function (array $data) { $data['field']; $data['field2']; } 'name-of-queue-B' => function (array $data) { $data['field']; $data['field2']; } ], limit: 10, // number of messages processed in multiFetch() call fetchFrom: $mananger::FROM_LISTED_ONLY );
许可证: 新BSD许可证
作者: Jan Pecha, https://www.janpecha.cz/