JAVA游戏服务器关闭操作的监听
来源:互联网 发布:自学php找工作 编辑:程序博客网 时间:2024/05/22 17:38
JAVA游戏服务器关闭操作的监听
今天上午刚到公司,运营的同学跑过给我说“你快看下我们昨天推的活动消失了”,运维的同学跑过来给我说“咱们的几个游戏服务器今天凌晨4点因为内存占用超过设定的4G被自动kill掉了,我运行start.py脚本启动服务器之后,又运行stop.py停服,但是好像数据出了问题,你快看一看”。 一脸蒙蔽:-(然后就检查服务器的启动、停止代码,查看是否有多线程问题,最后排除了多线程问题。运维的同学的实际操作步骤是:- 1.执行start.py脚本启动服务器- 2.若干时间后,执行stop.p脚本y关闭服务器 但是运维同学在1并未完全执行成功(也就是各个线程、数据都还没有完全初始化)就开始执行stop.py; 本来按理说,这样操作也是没问题的,但是万万想不到,监听服务器stop的addShutdownHook(); 是在写在主线程调用GameServer.start()的第一行,也就是说服务器一启动就开始监听关闭的消息; 但是这样会有一个问题,在启动服务器的过程中执行start.py(此时数据可能还没初始化好), 可能会导致回存一部分空的数据到数据库中(在服务器执行stop之前会执行一系列的回存操作), 因为此时内存中并没有数据,但是却把原本的数据给覆盖掉了.为了避免在启动服务器的过程中执行stop.py导致数据出错, 所以将addShutdownHook()放在了线程、数据初始化之后,暂时修复了这个隐藏的bug。
阅读全文
0 0
- JAVA游戏服务器关闭操作的监听
- Tomcat服务器关闭监听事件的处理
- 关于session监听浏览器关闭服务器执行destory的证实
- 关闭浏览器的监听
- 如何正确关闭游戏服务器
- Java ServerSocket 手动关闭监听
- Java监听应用的启动与关闭实例
- 给服务器加一个关闭监听线程
- 监听popwindow的关闭事件
- Java对数据库的关闭操作
- 服务器的关闭
- java 游戏服务器
- java 游戏服务器开发
- 游戏服务器 - 数据库异步操作技术 & 数据的保存机制
- muduo网络库学习(五)服务器监听类Acceptor及Tcp连接TcpConnection的建立与关闭
- javascript监听浏览器关闭的方法
- 监听页面的刷新与关闭
- ORACLE监听被关闭的处理
- python 基础(一)语句分支循环
- Xcode上一个社交类APP项目的设计/运行流程简述
- 使用excel工具类导出对象
- 杭电acm P2002
- 学习笔记:mySQL的增删改查
- JAVA游戏服务器关闭操作的监听
- 树莓派只能网线连接无法连接WiFi的解决方法
- Struts2之输入校验
- 杭电acm P2003
- 堆排序
- OD操作整理-API断点的设置;寄存器的修改;数据的查看
- python自学笔记1
- 全面解读流程图|附共享单车摩拜ofo案例分析
- java策略模式