ZeroMQ Subscriber在一段时间后停止接收消息

时间:2017-03-01 03:00:05

标签: php zeromq

我经营一名ZeroMQ订阅者恶魔。它工作了一段时间但订阅在某些时候停止,例如1个月后,甚至订阅过程仍然存在。 我经历过几次这个问题,直到有人说,我没有注意到。 我需要发现这个问题。你有什么好主意来发现这个问题吗?

一旦检测到此问题,我总是重新启动订阅者脚本。它会在那之后起作用。因此,定期重启过程将是一种可能的方式。但我认为还有更聪明的方法。

我正在使用libzmq,php-zmq和PHP5。 libzmq是版本4.2.1。

<?php
if (class_exists("ZMQ") && defined("ZMQ::LIBZMQ_VER")) {
    echo ZMQ::LIBZMQ_VER, PHP_EOL; // 4.2.1
}

以下是我的PHP订阅脚本。通常它有效。但是长时间工作后它不会打印出来。

$subscriber = new \ZMQSocket(new \ZMQContext(), \ZMQ::SOCKET_SUB);
$subscriber->connect("tcp://127.0.0.1:9999");
$subscriber->setSockOpt(\ZMQ::SOCKOPT_SUBSCRIBE, "type");

while (true) {
    $messages = $subscriber->recvMulti();
    $topic = $messages[0];
    print $topic;
}

更新1

我找到了这个PDF。 (备忘录给我)

http://zguide2.wdfiles.com/local--files/page:start/zguide-php.pdf

更新2

发布2或3条消息一秒钟。我认为这是经常的。数据是来自比特币核心的zeromq的比特币交易数据。

比特币核心有zeromq发布功能。

https://github.com/bitcoin/bitcoin/tree/master/src/zmq

0 个答案:

没有答案