
fi.evolver.basics.spring.log.MessageLogPersister Maven / Gradle / Ivy
package fi.evolver.basics.spring.log;
import java.time.Instant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MessageLogPersister {
private static final Logger LOG = LoggerFactory.getLogger(MessageLogPersister.class);
private static MessageLogService messageLogService;
@Scheduled(fixedDelay = 10_000)
public static void persist() {
try {
Instant stopByTime = Instant.now().plusSeconds(5);
boolean moreWork = false;
do {
moreWork |= messageLogService.persistMessageLog();
} while (moreWork && Instant.now().isBefore(stopByTime));
}
catch (Exception t) {
LOG.error("Persisting log messages FAILED", t);
}
}
@Autowired
public void setMessageLogService(MessageLogService messageLogService) {
MessageLogPersister.messageLogService = messageLogService;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy