0118睡到0749,起来就拉了一泡大的。今天国考开始报名。万圣节也临近了。
之前写的收集信息然后转发的qq机器人,为了避免短时间发出过多消息和腾讯风控,采用了节流发送
,简单说就是打算发消息时判断和上次发消息的间隔有没有经过1s,有则发,没有则延迟到上次消息的1s后再发送;发送的是星痕共鸣中金猪的状态信息,代码中差不多就是self.pigs
遍历一遍得到的信息;另外为了记录扫猪人的贡献,我有写个recordFirstMsg
函数,记录发现猪人的昵称和消息,有时也想用于追责,虽然到现在都完全没公开我保存的每天的log;问题出现啦,recordFirstMsg
是通过判断self.pigs
有没有新猪而进行的,而在节流发送
的现在,可能会导致在一条带有猪猪的信息为了节流而没发送的时间来了一条没用信息,而没用的信息会因为self.pigs
中存在新猪而一同被保存进log中,因为我没有保存old_pigs来判断是否有新猪,而是给pig设置一个标志位,没发信息前就不会被清除;要解决不难,引入一个新的标志位need_record就好,但不得不说,涉及到异步就是容易出问题呀,逻辑也变得复杂了。
想从云服务器上传record_pig
的logs,结果要github账号的PAT,有点繁琐。
受不了了,这国内服务器git pull
都能时不时失败的fatal: unable to access 'https://github.com/xxfttkx/record_pig.git/': GnuTLS recv error (-110): The TLS connection was non-properly terminated.
。
无言了,因为懒得马上解决而随手开了个issue并打上good first issue
的标签,结果1小时内又被完全不使用该脚本的外国人提交pr了,他们是有什么指标吗,又感动又畏惧。
git revert a4c8b7e4edf6a7d8e9a049f2cec1a8ddfba8ed7d^..HEAD
了。改了一中午,本地qq机器人能连ws,但服务器使用docker运行qq不知道该怎么配置,先回退成使用http的了。下次再看。而且前面docker logs root_llonebot_1
看了一下,停不下来的ws连接和连接失败,看懵了,同样的代码windows和linux表现还不一样,windows只连接一次,linux一直连,完全没有头绪,先http用着了,唉能用就不改了,改的我有点后怕。下次做这种事一定新开一个branch,现在好几个revert commit msg好难看。
晚上又在星痕共鸣杀猪,现在没有别的更感兴趣的东西,很痛苦。