Search in sources :

Example 1 with PersistenceCronStrategy

use of org.openhab.core.persistence.strategy.PersistenceCronStrategy in project openhab-core by openhab.

the class PersistenceManagerImpl method createTimers.

/**
 * Creates new {@link ScheduledCompletableFuture}s in the group <code>dbId</code> for the given collection of
 * {@link PersistenceStrategy strategies}.
 *
 * @param dbId the database id used by the persistence service
 * @param strategies a collection of strategies
 */
private void createTimers(final String dbId, List<PersistenceStrategy> strategies) {
    for (PersistenceStrategy strategy : strategies) {
        if (strategy instanceof PersistenceCronStrategy) {
            PersistenceCronStrategy cronStrategy = (PersistenceCronStrategy) strategy;
            String cronExpression = cronStrategy.getCronExpression();
            final PersistItemsJob job = new PersistItemsJob(this, dbId, cronStrategy.getName());
            ScheduledCompletableFuture<?> schedule = scheduler.schedule(job, cronExpression);
            if (persistenceJobs.containsKey(dbId)) {
                persistenceJobs.get(dbId).add(schedule);
            } else {
                final Set<ScheduledCompletableFuture<?>> jobs = new HashSet<>();
                jobs.add(schedule);
                persistenceJobs.put(dbId, jobs);
            }
            logger.debug("Scheduled strategy {} with cron expression {}", cronStrategy.getName(), cronExpression);
        }
    }
}
Also used : PersistenceCronStrategy(org.openhab.core.persistence.strategy.PersistenceCronStrategy) PersistenceStrategy(org.openhab.core.persistence.strategy.PersistenceStrategy) ScheduledCompletableFuture(org.openhab.core.scheduler.ScheduledCompletableFuture) HashSet(java.util.HashSet)

Aggregations

HashSet (java.util.HashSet)1 PersistenceCronStrategy (org.openhab.core.persistence.strategy.PersistenceCronStrategy)1 PersistenceStrategy (org.openhab.core.persistence.strategy.PersistenceStrategy)1 ScheduledCompletableFuture (org.openhab.core.scheduler.ScheduledCompletableFuture)1