matthiasnoback / tail-event-stream
一个简单的基于tail的事件流
v0.1.1
2022-01-25 12:57 UTC
Requires
- php: ^8.0
- ext-pcntl: *
- beberlei/assert: ^3.3
- symfony/process: ^5.3 || ^6.0
Requires (Dev)
README
一个基于tail
的事件流库。
注意:我认为你不应该在真实项目中使用这个库,但它非常适合教育目的。我只在研讨会中使用它。"
入门
使用Composer安装
composer require matthiasnoback/tail-event-stream
用法
向流中添加消息
use TailEventStream\Producer; $streamFilePath = __DIR__ . '/var/stream.txt'; $producer = new Producer($streamFilePath); $producer->produce('hello_world', ['Hello' => 'World!']);
stream.txt
文件每行包含一条消息
{"messageType":"hello_world","data":{"Hello":"World!"}}
使用 tail -f
,消费者可以读取流中的每条消息,并且它将持续消费消息,直到你退出进程
use TailEventStream\Consumer; $streamFilePath = __DIR__ . '/var/stream.txt'; $consumer = new Consumer($streamFilePath); $consumer->consume(function (string $messageType, array $data) { // $messageType will be 'hello_world' // $data will be ['Hello' => 'World!'] });
consume()
接受第二个参数,即开始的位置(或行)。