咨询一下,非 springboot 项目,定时任务如何安全退出

2023-07-28 16:26:05 +08:00
 QWE321ASD
我做了一个定时上报数据的小程序,但是有托盘可以退出,我想让退出时进行一半的定时任务先完成了再退出,有什么好办法吗
1378 次点击
所在节点    Java
8 条回复
nolog
2023-07-28 16:33:57 +08:00
扩展 spring 的容器销毁声明周期的相关函数,或者捕获操作系统信号处理,或者扩展 JVM 销毁钩子函数
securityCoding
2023-07-28 16:43:24 +08:00
关键字 graceful shutdown 搜一下就有
QWE321ASD
2023-07-28 17:09:57 +08:00
@nolog
@securityCoding 关键我不是 springboot 项目啊
BQsummer
2023-07-28 18:41:43 +08:00
jvm shutdown hook?
ikas
2023-07-29 09:03:11 +08:00
你托盘的退出,调用的方法,不是自己写的?
securityCoding
2023-07-29 16:35:10 +08:00
@securityCoding springboot 也不是 springboot 项目,点进去看下源码很难吗?
QWE321ASD
2023-07-31 10:01:34 +08:00
@nolog
@BQsummer 周末试了一下 jvm hook 是正解
QWE321ASD
2023-07-31 10:14:04 +08:00
@ikas 托盘退出时可以设置固定延时等待,但是不能保证任务完成后才关呀.
@securityCoding 问了 gpt4,graceful shutdown 不是依赖内置服务器自己的关闭能力吗,和我想达成的效果不一样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960593

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX