V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
QWE321ASD
V2EX  ›  Java

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

  •  
  •   QWE321ASD · Jul 28, 2023 · 2095 views
    This topic created in 1007 days ago, the information mentioned may be changed or developed.
    我做了一个定时上报数据的小程序,但是有托盘可以退出,我想让退出时进行一半的定时任务先完成了再退出,有什么好办法吗
    8 replies    2023-07-31 10:14:04 +08:00
    nolog
        1
    nolog  
       Jul 28, 2023
    扩展 spring 的容器销毁声明周期的相关函数,或者捕获操作系统信号处理,或者扩展 JVM 销毁钩子函数
    securityCoding
        2
    securityCoding  
       Jul 28, 2023
    关键字 graceful shutdown 搜一下就有
    QWE321ASD
        3
    QWE321ASD  
    OP
       Jul 28, 2023
    @nolog
    @securityCoding 关键我不是 springboot 项目啊
    BQsummer
        4
    BQsummer  
       Jul 28, 2023
    jvm shutdown hook?
    ikas
        5
    ikas  
       Jul 29, 2023
    你托盘的退出,调用的方法,不是自己写的?
    securityCoding
        6
    securityCoding  
       Jul 29, 2023
    @securityCoding springboot 也不是 springboot 项目,点进去看下源码很难吗?
    QWE321ASD
        7
    QWE321ASD  
    OP
       Jul 31, 2023
    @nolog
    @BQsummer 周末试了一下 jvm hook 是正解
    QWE321ASD
        8
    QWE321ASD  
    OP
       Jul 31, 2023
    @ikas 托盘退出时可以设置固定延时等待,但是不能保证任务完成后才关呀.
    @securityCoding 问了 gpt4,graceful shutdown 不是依赖内置服务器自己的关闭能力吗,和我想达成的效果不一样
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2506 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 06:09 · PVG 14:09 · LAX 23:09 · JFK 02:09
    ♥ Do have faith in what you're doing.