V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
QWE321ASD
V2EX  ›  Java

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

  •  
  •   QWE321ASD · 275 天前 · 1136 次点击
    这是一个创建于 275 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我做了一个定时上报数据的小程序,但是有托盘可以退出,我想让退出时进行一半的定时任务先完成了再退出,有什么好办法吗
    8 条回复    2023-07-31 10:14:04 +08:00
    nolog
        1
    nolog  
       275 天前
    扩展 spring 的容器销毁声明周期的相关函数,或者捕获操作系统信号处理,或者扩展 JVM 销毁钩子函数
    securityCoding
        2
    securityCoding  
       275 天前
    关键字 graceful shutdown 搜一下就有
    QWE321ASD
        3
    QWE321ASD  
    OP
       275 天前
    @nolog
    @securityCoding 关键我不是 springboot 项目啊
    BQsummer
        4
    BQsummer  
       274 天前
    jvm shutdown hook?
    ikas
        5
    ikas  
       274 天前
    你托盘的退出,调用的方法,不是自己写的?
    securityCoding
        6
    securityCoding  
       274 天前
    @securityCoding springboot 也不是 springboot 项目,点进去看下源码很难吗?
    QWE321ASD
        7
    QWE321ASD  
    OP
       272 天前
    @nolog
    @BQsummer 周末试了一下 jvm hook 是正解
    QWE321ASD
        8
    QWE321ASD  
    OP
       272 天前
    @ikas 托盘退出时可以设置固定延时等待,但是不能保证任务完成后才关呀.
    @securityCoding 问了 gpt4,graceful shutdown 不是依赖内置服务器自己的关闭能力吗,和我想达成的效果不一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5358 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 09:22 · PVG 17:22 · LAX 02:22 · JFK 05:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.