/zhu_guild_robot

初遇小竹机器人(包括小程序后端) 个人项目,已弃坑

Primary LanguageJavaScriptApache License 2.0Apache-2.0

本项目为《初遇小竹》机器人源代码,包括小程序后端,开发本项目时本人刚学习JavaScript两个月,代码非常混乱,中英混合,酌情观看

网页制图部分参考了yunzaibot,建议使用低版本chromium,而非谷歌,这样内存占用更低点

本项目使用 Apache 2.0 协议进行分发,二次修改需要注明原始版权

小程序后端在 plugins/初遇小竹/lib/qqApplication 需要更改https证书为自己的证书

配套QQ小程序源代码:https://github.com/BlockCnFuture/zhu_guild_robot_miniapp

注意: 本程序在高并发下,bull或mysql查询存在死锁问题(还没具体排查是谁的问题),个人使用没问题,商用的话不支持太高的并发,给出的建议:升级bull队列库,或者改成更高效的bee-queue、检查使用了SELECT ... FOR UPDATE语句或使用了事务的查询函数,这类函数主动获取了单个连接,需要检查在获取连接并使用完成后,是否主动释放了连接,将连接回放至连接池

运行前准备环境:

nodejs、pm2、redis、mysql8.0(或以上)、chromium浏览器

运行前修改文件:app.jsRedis键过期生产者.js频道事件生产者.js,修改redis、mysql、小程序、QQ机器人(私域) 的信息。如果对bull不够熟悉,请不要修改任务队列名(如:初遇小竹消息队列),以防无法接收事件

安装依赖:npm install

安装pm2:npm i pm2

运行:

npx pm2 start app.js --name 消费者

npx pm2 start Redis键过期生产者.js --name 键事件

npx pm2 start 频道事件生产者.js --name 生产者

故障重启:

npx pm2 restart 消费者

停机维护:

先:npx pm2 stop 生产者npx pm2 stop 键事件,再:npx pm2 stop 消费者,防止堆积大量任务

查看log:

npx pm2 log

程序提供了bull队列库的网页控制台,默认地址:http://127.0.0.1:5225/

网页控制台可查看任务队列状态、重启失败任务等

部署建议给服务器套上CDN,并开启请求合并和qps限制,以防大量无效/重复任务堆积在任务队列