关闭连接关闭问题

0

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


我想在WORKER STOP的时候 关闭这个AsyncTcpConnection连接。


另外 STOP回调会等方法执行完成吗? 或者说有什么方法让我确保我的方法能处理完成后再停止??

已邀请:

walkor

赞同来自:

进程停止时AsyncTcpConnection 会自动关闭。


stop时,如果进程在处理业务则等待,最长等待2秒,如果2秒内业务还没处理完就强制退出,AsyncTcpConnection也会关闭。

walkor

赞同来自:

在onWorkerStop里使用AsyncTcpConnection发送我要退出,收到回应后调用Worker::stopAll();来关闭连接。停止的使用是用优雅停止命令 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,接收对方优雅停止的响应OK
$con->onMessage = function($con, $data){
if ($data === 'OK') {
exit(0);
}
};
$con->send('我要退出的包');
};

优雅停止命令 php start.php stop -g

要回复问题请先登录注册