当java进程终止前,如何强制将自定义的缓冲里的字节写入文件?

java springboot项目里自定义了一个带缓冲的流,缓冲里的字符行行数小于某个数,譬如10时,就放在缓存里而不写入文件。但是有一个问题是,有时要升级项目,重启java进程(譬如kill -9),这个时候就会把缓冲里的字符行丢弃掉,没有写入文件。

当java进程终止前,如何强制将缓冲里的字节写入文件?

阅读 2.3k
1 个回答

spring boot本身就有shutdown hook,你应该先仔细阅读官方文档: https://docs.spring.io/spring...

另外kill -9慎用,神仙难救。SIGKILL信号根本不会被程序本身捕获,而是被内核捕获强行杀死进程,根本不会触发程序内部的close handler

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题