鍍金池/ 問答/Java/ springboot如何優(yōu)雅關(guān)閉,使得運行關(guān)閉命令后,進程先執(zhí)行完所有當前運行的

springboot如何優(yōu)雅關(guān)閉,使得運行關(guān)閉命令后,進程先執(zhí)行完所有當前運行的用戶線程后再結(jié)束?

springboot如何優(yōu)雅關(guān)閉,使得運行關(guān)閉命令后,進程先執(zhí)行完所有當前運行的用戶線程后再結(jié)束?

這里說的用戶線程指的是http請求線程以及這些線程開啟的新線程,定時調(diào)度@sched開啟的線程

另外我看不少用的是 kill -15 [pid],這個命令下springboot進程的反應(yīng)是怎樣的?

回答
編輯回答
離殤

CTRL+C

2018年4月13日 08:41
編輯回答
巫婆

兩種方法:

  1. 使用http的endpoint,需要集成actuator
  2. 設(shè)置為linux服務(wù),使用service xxx stop

具體介紹:

https://www.jianshu.com/p/44e...

EDIT

補充:已經(jīng)驗證第一種方式是會先清空注冊的正在執(zhí)行的線程之后,再結(jié)束主程序。第二種注冊為服務(wù)的方式?jīng)]有實際驗證,但是根據(jù)文檔描述也是會先清空正在執(zhí)行的用戶線程,然后結(jié)束。

https://docs.spring.io/spring...
2018年2月16日 10:41