/** * DimensionLoaderTask tells all of the {@link DimensionValueLoader}s to update and add values to the dimension * cache. * * @param dimensionRowProviders A Collection of {@link DimensionValueLoader} to initialize dimensions. */ public DimensionValueLoadTask(Collection<DimensionValueLoader> dimensionRowProviders) { super( DimensionValueLoadTask.class.getSimpleName(), SYSTEM_CONFIG.getLongProperty(LOADER_TIMER_DELAY, 0), SYSTEM_CONFIG.getLongProperty( LOADER_TIMER_DURATION, TimeUnit.MINUTES.toMillis(1) ) ); this.dimensionRowProviders = dimensionRowProviders; lastRunTimestamp = new AtomicReference<>(); HttpErrorCallback errorCallback = getErrorCallback(); FailureCallback failureCallback = getFailureCallback(); dimensionRowProviders.forEach(dimensionRowProvider -> { dimensionRowProvider.setErrorCallback(errorCallback); dimensionRowProvider.setFailureCallback(failureCallback); }); }