日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java signal handler_JAVA优雅停机的实现

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java signal handler_JAVA优雅停机的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在項目中需要寫一個數據轉換引擎服務,每過5分鐘同步一次數據。具體實現是啟動engine server后會初始化一個ScheduledExecutorService和一個ThreadPoolExecutor線程池。schduel executor每過5分鐘將dataTransformList中每一個tranform加入到線程池中運行。每一個數據轉化器負責轉換一組數據庫數據。在執行過程中存在服務重啟并且此時tranform正在轉換數據并且數據沒有全部操作完,此時希望正在執行的work能正常完成作業后再退出。優雅停機在服務重啟,服務關閉顯得比較重要了(盡管不能解決服務器突然斷電導致服務瞬間不可用等原因)。

普通的優雅停機:當使用kill PID的時候jvm會收到服務停止信號并執行shutdownHook的線程

Runtime.getRuntime().addShutdownHook(new Thread() {

public void run() {

synchronized (EngineBootstrap.class) {

EngineServer.getInstance().shutdown();

running = false;

EngineBootstrap.class.notify();

}

}

});

EngineServer的shutdown方法

public void shutdown() {

this.transformExecutor.shutdown();

this.scheduledExecutorService.shutdown();

}ThreadPoolExecutor的shutdown方法會中斷所有的空閑任務,保持正在運行中的任務執行完畢,但是由于kill PID一段時間后jvm就退出了導致正在執行的任務還沒有完成就停止了。

改進后的優雅停機:

Signal sig = new Signal(getOSSignalType());

Signal.handle(sig, new SignalHandler() {

public void handle(Signal signal) {

synchronized (EngineBootstrap.class) {

EngineServer.getInstance().shutdown();

running = false;

EngineBootstrap.class.notify();

}

}

});

private static String getOSSignalType() {

return System.getProperties().getProperty("os.name").

toLowerCase().startsWith("win") ? "INT" : "USR2";

}

linux下通過kill -l查看 31 對應于 SIGUSR2?執行kill -31 PID, SignalHander會接收到signal number為31的信號并執行server shutdown,此時jvm并不會退出直到線程池所有正在執行的線程全部執行完畢才會安全退出。

java -jar data-engine-1.0.0-SNAPSHOT.jar

sh shutdown.sh

可以看到主線程安全退出后,線程池中的work執行完畢后java進程才結束

chenbanghongs-MacBook-Pro:nbugs-data-engine sylar$ java -jar target/data-engine-1.0.0-SNAPSHOT.jar.zip

1

2

3

4

5

31

優雅停機

主線程安全退出

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

transform

總結

以上是生活随笔為你收集整理的java signal handler_JAVA优雅停机的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜国产在线视频 | 性爱一级视频 | 欧美色图激情小说 | 中文字幕日本一区 | 欧美韩日| 综合九九 | 黄视频网站在线 | 午夜精品在线视频 | 久久久久久久久影院 | 国产第一亚洲 | 五月天视频网 | 国语对白精彩对话 | 久久久久久一 | 日本激情视频在线观看 | www.爆操 | 草色网| 国语对白做受 | 清冷学长被爆c躁到高潮失禁 | 伊人久久天堂 | 色偷偷91| 幸福宝在线观看 | 国产免费一区二区三区在线观看 | 欧美日韩一二三 | 疯狂做爰的爽文多肉小说王爷 | 日本一区电影 | 日日干夜夜拍 | 欧美一区三区二区在线观看 | av在线亚洲天堂 | 三级av在线播放 | 男人天堂欧美 | 一区二区三区久久久久 | 久久精品黄aa片一区二区三区 | 手机在线一区二区 | 精品国产乱码久久久久久1区2区 | 黑人黄色一级片 | 国产午夜精品一区二区三区四区 | 国产97超碰 | 国产嫩草影视 | 美色视频 | 亚洲啊啊| 五月天在线 | 中文字幕在线播放一区 | 国产一区二区四区 | 永久免费,视频 | 日韩一级影片 | 天堂一区在线观看 | 日韩在线观看第一页 | 久草成人在线视频 | 韩日在线视频 | 国产黄色自拍视频 | 特黄老太婆aa毛毛片 | av毛片网| 91亚洲专区 | 超碰人人艹 | 天天摸天天干 | 亚洲草逼 | 黄色录像三级 | 在线中文字幕观看 | 午夜在线你懂的 | 亚洲午夜精品久久 | free性中国hd国语露脸 | 国产成人无码久久久精品天美传媒 | 超碰在线免费播放 | 91丝袜视频 | 成人精品影院 | 欧美性色网站 | 黑人巨大精品欧美一区二区蜜桃 | 国产精品正在播放 | 黄色网视频 | 国产东北露脸精品视频 | 久草视频精品 | 国产精品自拍合集 | 久久久中文网 | a天堂视频| 夜色一区 | 人妻精品久久久久中文字幕 | 人人人插 | 国产又粗又硬 | 99热国产在线 | 丁香激情五月少妇 | 欧美资源在线观看 | 激情综合六月 | 人与动物毛片 | 亚洲精品久久久久久国产精华液 | 天天操天天干天天爽 | 欧美精品自拍偷拍 | 樱桃视频一区二区三区 | 熟女熟妇伦久久影院毛片一区二区 | 91黄色看片| 国产一级淫片a视频免费观看 | 国产无码精品久久久 | 内射合集对白在线 | 999超碰| 黄频视频在线观看 | 国产综合精品 | 欧美精品在线一区 | 日韩经典中文字幕 | 亚洲无卡视频 | 亚洲女则毛耸耸bbw 边吃奶边添下面好爽 |