in src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java [90:133]
public JobDesc(final JobDataMap data) {
this.job = data.get(QuartzScheduler.DATA_MAP_OBJECT);
this.name = (String) data.get(QuartzScheduler.DATA_MAP_NAME);
this.providedName = (String)data.get(QuartzScheduler.DATA_MAP_PROVIDED_NAME);
this.runOn = (String[])data.get(QuartzScheduler.DATA_MAP_RUN_ON);
// initialize metrics fields
final QuartzScheduler localQuartzScheduler = (QuartzScheduler) data.get(QuartzScheduler.DATA_MAP_QUARTZ_SCHEDULER);
MetricRegistry localMetricsService = null;
ConfigHolder localConfigHolder = null;
if (localQuartzScheduler != null) {
// shouldn't be null but for paranoia
localMetricsService = localQuartzScheduler.metricsRegistry;
localConfigHolder = localQuartzScheduler.configHolder;
}
// mainConfiguration might be null during deactivation
slowThresholdMillis = localConfigHolder != null ? localConfigHolder.slowThresholdMillis() : DEFAULT_SLOW_JOB_THRESHOLD_MILLIS;
String metricsSuffix = "";
final String filterName = MetricsHelper.deriveFilterName(localConfigHolder, job);
if (filterName != null) {
metricsSuffix = ".filter." + filterName;
} else {
// no filter matches -> try (custom) thread pool
final String threadPoolName = data.getString(QuartzScheduler.DATA_MAP_THREAD_POOL_NAME);
if (threadPoolName != null) {
// 'tp' stands for thread pool
metricsSuffix = ".tp." + threadPoolName;
}
}
if ( localMetricsService != null ) {
metricRegistry = localMetricsService;
runningJobsCounter = metricRegistry.counter(QuartzScheduler.METRICS_NAME_RUNNING_JOBS + metricsSuffix);
jobDurationTimer = metricRegistry.timer(QuartzScheduler.METRICS_NAME_TIMER + metricsSuffix);
overallRunningJobsCounter = metricsSuffix.length() == 0 ? null
: metricRegistry.counter(QuartzScheduler.METRICS_NAME_RUNNING_JOBS);
} else {
metricRegistry = null;
runningJobsCounter = null;
jobDurationTimer = null;
overallRunningJobsCounter = null;
}
}