All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.evolver.basics.spring.log.MessageLogPersister Maven / Gradle / Ivy

There is a newer version: 6.7.0
Show newest version
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