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

關(guān)閉連接關(guān)閉問題

azafek

我想問下在WORKER里的ONSTART方法里用到了NEW AsyncTcpConnection();

我想在WORKER STOP的時(shí)候 關(guān)閉這個(gè)AsyncTcpConnection連接。

另外 STOP回調(diào)會(huì)等方法執(zhí)行完成嗎? 或者說有什么方法讓我確保我的方法能處理完成后再停止??

3590 2 0
2個(gè)回答

walkor 打賞

進(jìn)程停止時(shí)AsyncTcpConnection 會(huì)自動(dòng)關(guān)閉。

stop時(shí),如果進(jìn)程在處理業(yè)務(wù)則等待,最長等待2秒,如果2秒內(nèi)業(yè)務(wù)還沒處理完就強(qiáng)制退出,AsyncTcpConnection也會(huì)關(guān)閉。

  • azafek 2020-03-24

    謝謝,是這樣的,我這邊的要求是:對(duì)方要求我‘優(yōu)雅’的退出,也就是worker stop的時(shí)候,我需要先告訴對(duì)方服務(wù)器我要關(guān)閉了(類似登出賬號(hào)),然后再關(guān)閉AsyncTcpConnection。

    但是現(xiàn)在基本一STOP直接就關(guān)閉了。有沒有什么辦法讓他確保我做了一些事情后 關(guān)閉

  • azafek 2020-03-24

    AsyncTcpConnection 是不是直接就被關(guān)閉了,我目前看的情況是 這樣的,而不是等待2秒

  • azafek 2020-03-24

    想要有個(gè)交互的過程,大概要1秒左右,STOP時(shí), AsyncTcpConnection發(fā)送到對(duì)方: 我要退出 對(duì)方回應(yīng):OK

    然后解除連接

    目前情況是發(fā)送應(yīng)該是發(fā)送過去了,但是ONMESSAGE沒有收到信息

walkor 打賞

在onWorkerStop里使用AsyncTcpConnection發(fā)送我要退出,收到回應(yīng)后調(diào)用Worker::stopAll();來關(guān)閉連接。停止的使用是用優(yōu)雅停止命令 php start.php stop -g。
代碼類似如下:

$worker = new Worker();
$worker->onWorkerStart = function(){
    global $con;
    $con = new AsyncTcpConnection(...);
    $con->onMessage = funcyion(){};
    $con->connect();
};
$worker->onWorkerStop = function () {
    global $con;
    // 重置$con的onMessage,接收對(duì)方優(yōu)雅停止的響應(yīng)OK
    $con->onMessage = function($con, $data){
        if ($data === 'OK') {
            exit(0);
        }
    };
    $con->send('我要退出的包');
};

優(yōu)雅停止命令 php start.php stop -g

  • azafek 2020-03-24

    試了下是有效的,謝謝大佬,手冊(cè)上搜不到關(guān)于優(yōu)雅退出的信息

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