[英]Java schedule runs only once
我有一个任务,我想在每个星期天下午6点运行,并且我为此目的使用了javax.ejb.Schedule。 我把时间表设定为;
@Schedule(dayOfWeek = "Sun", hour="18", persistent = false)
出于某种原因,这只运行一次然后悄然停止。 如果我将其注释为以下内容,它会继续运行并且每分钟运行一次;
@Schedule(hour="*", minute="*", persistent = false)
我知道如果抛出一个异常,计时器就会被清除,但是当我每分钟运行一次时它运行正常。 此外,第一个星期天它运行良好,然后我看到第二个星期天没有它的痕迹; 没有例外或记录或任何东西。 有什么想法吗? 更多代码;
@Schedules(value = {
@Schedule(dayOfWeek = "Sun", hour="18", persistent = false)
})
public void runTask() {
logger.info("Running task");
File file = new File("file.csv");
List<String[]> data = getData();
try {
populateCsv(file, data);
} catch (IOException e) {
logger.error("Error creating csv file", e);
}
}
private void populateCsv(File file, List<String[]> data) throws IOException {
CSVWriter csvWriter = null;
try {
FileWriter fileWriter = new FileWriter(file);
csvWriter = new CSVWriter(fileWriter, ',', CSVWriter.NO_QUOTE_CHARACTER);
csvWriter.writeAll(data);
} finally {
if (csvWriter != null) {
csvWriter.close();
}
}
}
@Schedules注释是出于历史原因,只是想在发布时保持代码准确
尝试将dayOfMonth =“Sun”,month =“ ”,year =“ ”,hour =“18”作为参数并验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.