У меня есть эта проблема:
Я планирую запуск задачи каждые 10 минут.Когда он запустится, я ожидаю получить два письма от двух неудачных проверок.
Однако, когда я редактирую свой проект, dev-tools фиксируют изменения и перезапускают весеннее приложение.Но вот проблема: я все еще получаю электронные письма от старого запущенного приложения.
Что я могу сделать, чтобы правильно завершить работу приложения?Боюсь, что эта проблема также повлияет на производственную среду.
Код:
<code>@Component
public 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("
");}}