tttlkkkl / php_nsq_client
php nsq client
Installs: 2 530
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.6
- ext-swoole: >=2.1.2
This package is not auto-updated.
Last update: 2025-03-16 09:03:07 UTC
README
#nsq_swoole_client 基于swoole实现的NSQ客户端。支持sub、pub、mPub、auth。 lumen 下的使用实例(laravel同理):github。
composer require "tttlkkkl/php_nsq_client:~2.2.4" -vvv
- 消息去重、重新排队的机机制、日志等都可以通过实现已定义的接口去中心实现。一般情况下只需要实现消息处理方法即可。
- 默认实现的消费客户端构造方法参数
$finishAuto
为true
时,如果handle
方法返回false
或者抛出任何异常都将自动根据requeue
对象重新排队。 - 如果已对
message
对象调用了finish()
或者requeue()
方法并且失败时,走$finishAuto
为true
时的逻辑。 $finishAuto
为false
时,必须手动调用finish()
或者requeue()
。helper
目录中封装了常用的http
pub
和mpub
。
示例:
$lookupHost = '127.0.0.1:4160'; $topic = $channel = 'test'; // 重复排队10次,每次50秒延时下发 $reQueue = new \NsqClient\lib\requeue\Requeue(10, 50); $client = new Client( $topic, $channel, '', function (\NsqClient\lib\message\Message &$message) { echo "收到消息:{$message->getId()}\n"; $message->finish(); }, true, null, $reQueue, [ 'heartbeat_interval' => 1000//1秒的心跳间隔 ] ); // 开启的工作进程数 $workNum = 2; (new NsqClient())->init($client, $lookupHost, $workNum);giot