国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

[已解決]MQTT訂閱消息丟失

wxvirus

workerman-mqtt版本

{
    "name"  : "workerman/mqtt",
    "type"  : "library",
    "homepage": "http://www.wtbis.cn",
    "license" : "MIT",
    "require": {
        "workerman/workerman" : ">=3.3.0"
    },
    "autoload": {
        "psr-4": {"Workerman\\Mqtt\\": "./src"}
    }
}

運(yùn)行暫無(wú)問(wèn)題,就是運(yùn)行了有好大半年了,突然發(fā)現(xiàn)有一部分?jǐn)?shù)據(jù)未收到;服務(wù)端和訂閱端都是QOS=2

訂閱端代碼

use Workerman\Worker;

$worker = new Worker();
$worker->onWorkerStart = function () {
    $options = ['client_id' => 'xxx', 'reconnect_period' => 1, 'username' => 'xxx', 'password' => 'xxx', 'debug' => false];
    $mqtt = new Workerman\Mqtt\Client(MQTT_ADDR, $options);
    $mqtt->onConnect = function ($mqtt) {
        do_log('Connected to MQTT broker');
        $mqtt->subscribe('topic', ['qos' => 2]);
    };
    $mqtt->onMessage = function ($topic, $content) {
        do_log('開(kāi)始處理消息');
        procMsg($topic, $content);
    };
    $mqtt->connect();
};
Worker::runAll();

function procMsg($topic, $msg)
{
    do_log('msg: ' . $msg);
    // 做了一點(diǎn)業(yè)務(wù): 將消息數(shù)據(jù)插入到表里
    // 這里可能有點(diǎn)問(wèn)題,因?yàn)樽约簩懙氖敲看味糿ew一個(gè)PDO,現(xiàn)在準(zhǔn)備改掉,但是不知道是否和這個(gè)有關(guān)
}

也沒(méi)報(bào)錯(cuò)也沒(méi)啥異常;對(duì)方也有一臺(tái)機(jī)器也是訂閱的,但是他們有數(shù)據(jù),我這沒(méi)數(shù)據(jù),也不知道是不是有這種"多個(gè)訂閱方同時(shí)訂閱同一個(gè)主題時(shí),某個(gè)訂閱方可能會(huì)丟失消息"的問(wèn)題,因?yàn)槲覀兌颊{(diào)整過(guò)都是qos=2,請(qǐng)大佬們指點(diǎn)下查找思路和解決思路

已解決

原因:

  1. ps -ef | grep的時(shí)候隨便填了個(gè)有點(diǎn)關(guān)系的關(guān)鍵字沒(méi)搜到全部進(jìn)程,沒(méi)有kill掉全部的,再進(jìn)行重啟,導(dǎo)致部分進(jìn)程還在跑以前的代碼,導(dǎo)致一會(huì)日志記錄現(xiàn)在的內(nèi)容一會(huì)是記錄以前的內(nèi)容;
  2. 處理消息業(yè)務(wù)部分,沒(méi)在意業(yè)務(wù)已經(jīng)換庫(kù)了(大半年沒(méi)改過(guò)了,忘了),把自己本地的鏈接覆蓋上去了,導(dǎo)致一直處于 SQLSTATE[HY000] [2002] Connection refused
2438 0 0
0個(gè)回答

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??