亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當開發工具重新啟動 Web 服務器時,計劃任務不會停止

當開發工具重新啟動 Web 服務器時,計劃任務不會停止

泛舟湖上清波郎朗 2022-06-08 17:33:11
我有這個問題:我正在安排每 10 分鐘運行一次的任務。當它運行時,我預計會收到兩封來自兩次檢查失敗的電子郵件。但是,當我編輯我的項目時,開發工具會獲取更改并重新啟動 spring 應用程序。但問題是:我仍然收到來自正在運行的舊應用程序的電子郵件。我該怎么做才能正確終止應用程序?恐怕這個問題也會影響到生產環境。代碼:@Componentpublic class CheckRunner implements Runnable {    private static final Logger log = LoggerFactory.getLogger(CheckRunner.class);    private static boolean runOnce = true;    private final long DEFAULT_CHECKING_INITIAL = 1L;    private final long DEFAULT_CHECKING_PERIOD = 10L;    @Autowired    public EmailServiceImpl emailService;    /**     * Construct and schedule a CheckRunner      */    public CheckRunner() {        if(runOnce) {            runOnce = false;            log.info("Starting check runner.");            ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();            exec.scheduleAtFixedRate(this, DEFAULT_CHECKING_INITIAL , DEFAULT_CHECKING_PERIOD, TimeUnit.MINUTES);        }    }    /**     * Run the checks once     */    @Override    public void run() {        log.info("Checking thread running.");        checks();    }    /**     * Do the checks     */    private void checks() {        StringBuilder sb = new StringBuilder();        //sb.append("<pre>");        WebServerAvailablityCheck.runAllChecks(sb, emailService);        //sb.append("</pre>");    }}
查看完整描述

1 回答

?
DIEA

TA貢獻1820條經驗 獲得超3個贊

如果您在 bean 上實現java.io.CloseableCheckRunner從其中調用shutdown()executor,那么 Spring 將Closeable.close()在 bean 被銷毀時調用。這將導致您的執行程序線程優雅地關閉。



查看完整回答
反對 回復 2022-06-08
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號