springboot优雅停机
生活随笔
收集整理的這篇文章主要介紹了
springboot优雅停机
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
項目版本迭代難免需要重啟應用,比較粗暴的方法是kill -9 pid,這種方式是直接通過操作系統命令殺死進程,用戶未完成的請求也會被丟失掉,尤其是我們的應用中有隊列任務的,要是隊列中的任務沒有持久化,那就全丟了。
這里通過關閉spring上下文的方式來優雅停機;
1:首先新增一個get方式的接口:
@GetMapping(path = "/shutDown")public JsonResult shutDownApi(@RequestParam(name = "token") String token){if ("111111111".equals(token)){ConfigurableApplicationContext context = (ConfigurableApplicationContext) SpringUtil.getApplicationContext();context.close();return JsonResult.createSuccess("ok");} else {return JsonResult.createFail("invalid token");}}ConfigurableApplicationContext 是spring啟動的上下文環境,我們在springboot的啟動類的main方法保留他的引用:
在linux中直接通過curl -v "http://host:port/api/shutDown?token=111111111"請求關機接口來實現安全地關閉應用。
總結
以上是生活随笔為你收集整理的springboot优雅停机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue实现时间选择器,精确到秒
- 下一篇: java高位转低位注意事项,int转 s