让机器人保持“清醒状态”
Closed this issue · 1 comments
Deleted user commented
重要:请不要删除模板自行填写,所有不按照模板填写的issue,我们将不会处理。
0. 发 Issue 指南
- 请运行下面的命令,看问题是否可以被解决:
rm -rf package-lock.json
rm -rf node_modules
npm install
-
请在 FAQ 清单 看是否已有解决办法。
-
请先在issue 中搜关键信息,确认你要发的内容和之前的issue 不重复。
1. 提供你的包版本信息
- wechaty 版本:0.26.1
- wechaty-puppet-padpro 版本: 0.2.1
- node 版本: (运行
node --version
获取版本)11.0.0 - 你使用的操作系统:Win10
2. Bug 描述
请用精简的语言描述你遇到的bug
关于消息转发的机器人,(简而言之,我让微信机器人转发一个爬虫代码抓取到的消息,自动转发到微信群)
机器人在长时间没收到消息(一天左右)后,似乎进入了一种“休眠”或者“低功耗”的模式,我挂了大半天后,第二天再让他发转发消息时,前两三条消息都隔了半分钟左右才回复,延迟很明显,后面就感觉“唤醒”了,消息就瞬间回复。
由于我的机器人目前的消息量很少,但每条消息的时效性很重要,因此我想让机器人一直“清醒”的状态,时时刻刻都能做到“瞬间转发”。
由于没有任何Error,我无法确认是wechaty还是iPad接口的问题。
3. 复现的步骤 (或者解决的步骤)
这一部分非常重要,如果你无法给出复现步骤,我们也很难提供相应的解决办法:
我感觉这个问题应该不局限于我的代码,但出于完整性还是贴一下简化后的代码。
bot
.on('scan', (qrcode, status) => console.log(`Scan QR Code to login: ${status}\nhttp://qr.liantu.com/api.php?text=${encodeURIComponent(qrcode)}`))
.on('login', onLogin)
.start()
async function onLogin(user){
const room = await bot.Room.findAll()
let group = room[0];
scraper.on('message', async msg=>{group.say(msg)}) //这里代码有所简化, 新消息触发爬虫的message事件,然后消息传给wechaty
}
- 第一步:自动发消息的机器人(虽然我的应用场景是爬虫转发,但我觉得其他自动发消息机器人也会有类似问题)
- 第二步:在服务器上跑着,但不要给他发送任何消息,等待大半天
- 第三步:再给它发消息,前一两条消息有明显延迟;继续发消息,延迟逐渐消失,恢复正常
我在微信群里问了,也有人有类似的体验。
4. 期待程序运行的结果
希望能一直保持清醒,立刻回复。
5. 程序实际运行的结果
请用精简的语言或者截图描述实际运行的结果(请不要在这里粘贴日志截图)
没有Error,功能也实现了,只不过是发消息的时间延迟问题。。。
lijiarui commented