【发布时间】:2021-07-02 07:09:56
【问题描述】:
我喜欢为我的项目合并时间还有其他方法吗?例如对于我的 yml 侦听器,都配置 minute:1 和 second: 18 所以我期望的时间是 78
下面是我的代码;
下面是我的yml;
listener:
info:
hour: 0
minute: 0
second: 18
milliSecond: 0
下面是我的监听器配置;
@Configuration
public class EventListenerConfiguration {
@Value("${listener.info.hour}")
private int listenerInfoHour;
@Value("${listener.info.minute}")
private int listenerInfoMinute;
@Value("${listener.info.second}")
private int listenerInfoSecond;
@Value("${listener.info.milliSecond}")
private int listenerInfoMilliSecond;
public int getTotalMilliSecondTimeForInfoForSecond() {
return listenerErrorSecond * 1000 + listenerErrorMilliSecond + listenerErrorMinute * 6000 + listenerErrorHour * 360_000;
}
public int getTotalMilliSecondTimeForErrorForMinute() {
return listenerErrorMinute * 60_000 + listenerErrorMilliSecond + listenerErrorSecond * 6000 + listenerErrorHour * 360_000;
}
public int getTotalMilliSecondTimeForErrorForHour() {
return listenerErrorHour * 3_600_000 + listenerErrorMilliSecond + listenerErrorMinute * 6000 + listenerErrorSecond * 360_000;
}
下面是我的消费类;
@Autowired
EventListenerConfiguration eventListenerConfiguration;
private long lastReceivedMessage = System.currentTimeMillis();
@Scheduled(fixedDelayString = "${listenScheduled}", initialDelay = 1000)
private void distanceBetweenLastReceivedMessageAndCurrentTime() {
long currentTime = System.currentTimeMillis() - lastReceivedMessage;
if (currentTime >= eventListenerConfiguration.getConcanteTotalMilliSecondTimeForErrorForSecondAndMinute()) {
publishEvent("event info", EventSeverityStatus.ERROR, EventTypeStatus.ALERT, null);
所以我尝试了“getConcanteTotalMilliSecondTimeForErrorForSecondAndMinute()”方法,但不幸的是它没有连接秒和分钟。
public int getConcanteTotalMilliSecondTimeForErrorForSecondAndMinute() {
return getTotalMilliSecondTimeForErrorForSecond() + getTotalMilliSecondTimeForErrorForMinute();
}
【问题讨论】:
-
连接是什么意思?可以举个例子吗?
-
listener: info: hour: 0 minute: 0 second: 18 而不是 listener: info: hour: 0 minute: 1 second: 18 所以时间会显示为 78
标签: java spring multithreading datetime java-8