Example usage for org.springframework.scheduling Trigger Trigger

List of usage examples for org.springframework.scheduling Trigger Trigger

Introduction

In this page you can find the example usage for org.springframework.scheduling Trigger Trigger.

Prototype

Trigger

Source Link

Usage

From source file:org.zenoss.zep.impl.TriggerPlugin.java

private void scheduleSpool() {
    if (spoolFuture != null) {
        spoolFuture.cancel(false);//from w w w.j a  v a 2 s.co m
    }
    Trigger trigger = new Trigger() {
        @Override
        public Date nextExecutionTime(TriggerContext triggerContext) {
            Date nextExecution = null;
            try {
                long nextFlushTime = signalSpoolDao.getNextFlushTime();
                if (nextFlushTime > 0) {
                    nextExecution = new Date(nextFlushTime);
                    logger.debug("Next flush time: {}", nextExecution);
                }
            } catch (Exception e) {
                logger.warn("Exception getting next flush time", e);
            }
            if (nextExecution == null) {
                nextExecution = new Date(System.currentTimeMillis() + MAXIMUM_DELAY_MS);
            }
            return nextExecution;
        }
    };
    Runnable runnable = new ThreadRenamingRunnable(new Runnable() {
        @Override
        public void run() {
            processSpool(System.currentTimeMillis());
        }
    }, "ZEP_TRIGGER_PLUGIN_SPOOL");
    spoolFuture = scheduler.schedule(runnable, trigger);
}