ScheduledExecutorService の使い回し
jconsole というツールが jdk に標準で入っている。ヒープメモリやスレッドの状態を教えてくれるツールであるが,そんなものがあることを初めて知った。jconsole で見ていたら,靴ボタンを押して受付患者チェックをすると,ライブスレッドがどんどん増えていくことに気がついた。試しに靴ボタンを連打してみたら,えらいことになった。普通そんなことはしないので問題ないのかもしれないが,気持ち悪いのでScheduledExecutorService は使い回すことにした。これで,靴ボタンを連打しても大丈夫。
plugin/WatingListImpl.java
////↓ private DocumentPeeker peeker; private ScheduledExecutorService schedule; private static final Color SHOSHIN_COLOR = new Color(180,220,240); //青っぽい色 private static final Color KARTE_EMPTY_COLOR = new Color(250,200,160); //茶色っぽい色 private static final Color DIAGNOSIS_EMPTY_COLOR = new Color(243,255,15); //黄色 ////↑ /** * Creates new WatingList */ public WatingListImpl() { setName(NAME); ////↓ 使い回すオブジェクト peeker = new DocumentPeeker(); schedule = Executors.newSingleThreadScheduledExecutor(); ////↑ } ・ ・ public void restartCheckTimer() { ・ ・ ////↓ schedule は,コンストラクタで作って使い回すことにする // ScheduledExecutorService schedule = Executors.newSingleThreadScheduledExecutor(); timerHandler = schedule.scheduleWithFixedDelay(pvtChecker, 0, checkInterval, TimeUnit.SECONDS); } ・ ・ public void checkFullPvt() { if (timerHandler != null) { ////↓ 定期チェック中ならチェックしない if (timerHandler.getDelay(TimeUnit.SECONDS) <= 1) { logger.info("regular pvtChecker in process"); return; } ////↑ timerHandler.cancel(false); } ・ ・ ////↓ schedule は,コンストラクタで作って使い回すことにする // ScheduledExecutorService schedule = Executors.newSingleThreadScheduledExecutor(); timerHandler = schedule.scheduleWithFixedDelay(pvtChecker, checkInterval, checkInterval, TimeUnit.SECONDS); }
« カルテ保存後ウインドウを閉じる(続) | トップページ | SendClaimImpl.java の BufferedOutputStream »
「OpenDolphin」カテゴリの記事
- 運用17年目のまとめ(2025.02.03)
- IME on/off の切換 - その2(2024.12.02)
- OrcaController オルコン(2024.11.28)
- OpenDolphin: java 21 / wildfly 34 への移行(2024.11.08)
- IME on/off の切り替え(2024.09.03)