onWorkerStart时添加定时任务会导致register验证出错 Register auth timeout
时间:2023年05月10日
/来源:网络
/编辑:佚名
GatewayWorker businessworker中 onWorkerStart时添加一个一小时以上的定时任务会导致register验证出错 报 pid:1 Register auth timeout (127.0.0.1). See http://wiki.workerman.net/Error4 for detail 错误,
查找原因为BusinessWorker 类中的connectToRegister方法$this->_registerConnection->send('{"event":"worker_connect","secret_key":"' . $this->secretKey . '"}'); 没有发送消息成功,
猜想原因:发送语句不是链接成功后执行的,而添加的大于一小时的定时任务阻塞了_registerConnection链接()。
解决办法将$this->_registerConnection->send('{"event":"worker_connect","secret_key":"' . $this->secretKey . '"}');
改为:
$this->_registerConnection->onConnect = function()
{
$this->_registerConnection->send('{"event":"worker_connect","secret_key":"' . $this->secretKey . '"}');
};
workerman爱好者:walkor
你的GatewayWorker版本应该不是最新的,最新的版本Gateway与businessworker的验证是在onConnect中完成的,最新版本支持了多register,使得GatewayWorker具有超高可用性。
最后不建议将耗时任务放在businessworker中,这样会进程阻塞,Gateway转发给businessworker的任务无法及时处理,导致消息处理或发送延迟。
查找原因为BusinessWorker 类中的connectToRegister方法$this->_registerConnection->send('{"event":"worker_connect","secret_key":"' . $this->secretKey . '"}'); 没有发送消息成功,
猜想原因:发送语句不是链接成功后执行的,而添加的大于一小时的定时任务阻塞了_registerConnection链接()。
解决办法将$this->_registerConnection->send('{"event":"worker_connect","secret_key":"' . $this->secretKey . '"}');
改为:
$this->_registerConnection->onConnect = function()
{
$this->_registerConnection->send('{"event":"worker_connect","secret_key":"' . $this->secretKey . '"}');
};
workerman爱好者:walkor
你的GatewayWorker版本应该不是最新的,最新的版本Gateway与businessworker的验证是在onConnect中完成的,最新版本支持了多register,使得GatewayWorker具有超高可用性。
最后不建议将耗时任务放在businessworker中,这样会进程阻塞,Gateway转发给businessworker的任务无法及时处理,导致消息处理或发送延迟。
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03