heart beat is broken in a long run
Closed this issue · 11 comments
### 1. 提供你的包版本信息
- wechaty 版本:0.22.4
- wechaty-puppet-padchat 版本:0.16.2
- node 版本: >= 10 (运行
node --version
获取版本)
4. 复现的步骤 (或者解决的步骤)
这一部分非常重要,如果你无法给出复现步骤,我们也很难提供相应的解决办法:
例子:
- 长时间开启,会出现这个问题。
5. 完整的日志信息:
请提供完整的日志信息(不要只提供部分的日志内容!)
$ WECHATY_LOG=silly node yourbot.js
请将你的log 粘贴在这里。
06:36:03 VERB Wechaty onFunction(message)
--
06:36:03 VERB Wechaty on(message, function) registered
06:36:03 VERB Wechaty onFunction(room-leave)
06:36:03 VERB Wechaty on(room-leave, function) registered
06:36:03 VERB Wechaty onFunction(room-join)
06:36:03 VERB Wechaty on(room-join, function) registered
06:36:03 VERB Wechaty onFunction(friendship)
06:36:03 VERB Wechaty on(friendship, function) registered
06:36:03 VERB Wechaty onFunction(ready)
06:36:03 VERB Wechaty on(ready, function) registered
06:36:03 VERB Wechaty onFunction(login)
06:36:03 VERB Wechaty on(login, function) registered
06:36:03 VERB Wechaty onFunction(error)
06:36:03 VERB Wechaty on(error, function) registered
06:36:03 VERB Wechaty onFunction(scan)
06:36:03 VERB Wechaty on(scan, function) registered
06:36:03 VERB StateSwitch constructor(name=WechatyReady)
06:36:03 VERB StateSwitch constructor(name=Wechaty)
06:36:03 VERB Wechaty contructor()
06:36:03 SILL Accessory #0<Wechaty> constructor()
06:36:03 VERB Puppet constructor() childClassPath=/wechat-bot/node_modules/wechaty-puppet-padchat/dist/src
06:36:03 SILL HotImport callerResolve() callerFile=/wechat-bot/node_modules/wechaty-puppet-padchat/dist/src/puppet-padchat.js
06:36:03 SILL HotImport callerResolve() callsites() file=/wechat-bot/node_modules/wechaty-puppet-padchat/dist/src/puppet-padchat.js, type=null
06:36:03 SILL HotImport callerResolve() callsites() file=/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js, type=null
06:36:03 SILL HotImport callerResolve() callsites() file=/wechat-bot/node_modules/hot-import/dist/src/hot-import.js, type=Object
06:36:03 VERB HotImport callerResolve(., /wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js)
06:36:03 VERB Puppet constructor() watchdog timeout set to 240 seconds
06:36:03 VERB MemoryCard load() no storage
06:36:03 VERB MemoryCard load() from storage: N/A
06:36:03 VERB MemoryCard getStorage() for storage type: N/A
06:36:03 VERB MemoryCard constructor(undefined)
06:36:03 VERB StateSwitch constructor(name=PuppetPadchat)
06:36:03 VERB Puppet constructor({"timeout":240,"token":"puppet_padchat_cbf5************4b"}) #0
咱们这个运行的wechaty-puppet-padchat
版本有点低,能麻烦用最新版再测试一下看看么?新版是v0.19.3
我们现在用的是"^0.18.2",还需要更新到v0.19.3吗?
PS:抱歉,我发现我写错了,正在用的版本是:
"wechaty": "^0.22.6",
"wechaty-puppet": "^0.14.1",
"wechaty-puppet-padchat": "^0.18.2"
0.18.2应该可以,那我再问下,这个具体是什么问题?是说长时间运行之后,心跳会停么?这个长时间的话,大概是多久。还有你们有计划迁移到wechaty-puppet-padpro
么
是说长时间运行之后,心跳会停么?
是这样的症状
这个长时间的话,大概是多久。
我手边有log,我要怎么看出来呢?有哪些log的关键字可以定位的?
还有你们有计划迁移到wechaty-puppet-padpro么
我们最终会迁移到Pro,但尽可能推迟这个时间。因为:
- 目前还不确定当前问题和pro有关
- 我们对pro做过测试,目前它还不稳定
这个长时间的话,大概是多久。
大概感受的话:有时候就几个小时,有时候一两天
这个问题是最近才发生的,还是一直都有?
issue里面贴的log没看明白问题在哪。在这段log的前面是有触发了wechaty的reset么?
padpro是什么时候测试的?最近有一些更新,目前比较稳定了
这个问题是最近才发生的,还是一直都有?
一直有
issue里面贴的log没看明白问题在哪。在这段log的前面是有触发了wechaty的reset么?
我们也不知道怎么看,所以提出来认为可能有用的信息。可能有过人为reset
padpro是什么时候测试的?最近有一些更新,目前比较稳定了
大概几周前测试的。谢谢告知更新。
如果我们想定位这个问题,可以在log里加入些什么命令呢?
padchat的底层偶尔会出现不稳定的情况,会导致连接上的不稳定。
我们为了解决padcaht底层的问题,上线的新的wechaty-puppet-padpro,之后会慢慢把重心都迁移到padpro上面。
关于这个问题,还有一个事情要确认一下,上述描述的情况在重启了程序之后还继续存在么?还是说重启之后会恢复正常?如果可以恢复正常的话,我提出一个workaround的解决方案,就是在服务这边做一个定时的重启,来减少这种心跳包断掉导致的没有反应。
除此之外,还可以让机器人定时发消息到某个微信号,然后检测机器人在线情况,如果超过一段时间没有消息,则认为是掉线,然后重启它。
关于这个问题,还有一个事情要确认一下,上述描述的情况在重启了程序之后还继续存在么?
重启后可以用,但过段时间还继续存在
我提出一个workaround的解决方案,就是在服务这边做一个定时的重启,来减少这种心跳包断掉导致的没有反应。
谢谢,我们去考虑一下
还可以让机器人定时发消息到某个微信号,然后检测机器人在线情况,如果超过一段时间没有消息,则认为是掉线,然后重启它
我们现在用的是这个办法
还可以让机器人定时发消息到某个微信号,然后检测机器人在线情况,如果超过一段时间没有消息,则认为是掉线,然后重启它
我们现在用的是这个办法
我说的不准确,应该是我们在用类似的方法
每天早上10点左右,bot会在group里做推送。
如果它不推送了,很大概率是死掉了。