Created
May 6, 2023 14:36
-
-
Save jonbartels/27b09865b2b48051920564af83fca09e to your computer and use it in GitHub Desktop.
A hastily written script to enumerate the Quartz scheduler jobs from Mirth Connect in a JS reader or JS step and return JSON
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var dump = {}; | |
var factory = new org.quartz.impl.StdSchedulerFactory(); | |
var allSchedulers = factory.getAllSchedulers(); | |
dump.schedulerCount = allSchedulers.size(); | |
dump.schedulers = []; | |
var iter = allSchedulers.iterator(); | |
while(iter.hasNext()){ | |
var scheduler = iter.next(); | |
var schedulerDetail = {}; | |
schedulerDetail.summary = scheduler.getMetaData().getSummary(); | |
schedulerDetail.groups = []; | |
var groupNames = scheduler.getJobGroupNames(); | |
var groupIter = groupNames.iterator(); | |
while(groupIter.hasNext()){ | |
var groupName = groupIter.next(); | |
var groupDetails = {}; | |
groupDetails.groupName = groupName; | |
groupDetails.jobs = []; | |
var jobKeys = scheduler.getJobKeys(org.quartz.impl.matchers.GroupMatcher.jobGroupEquals(groupName)); | |
var jobIter = jobKeys.iterator(); | |
while(jobIter.hasNext()){ | |
var job = jobIter.next(); | |
var jobName = job.getName(); | |
var jobGroup = job.getGroup(); //shouldn't this match groupname? | |
var jobDetails = {}; | |
jobDetails.jobName = jobName; | |
jobDetails.jobGroup = jobGroup; | |
var triggers = scheduler.getTriggersOfJob(job); | |
jobDetails.triggerCount = triggers.size(); | |
var nextTriggerDate = triggers.get(0).getNextFireTime(); //Java Date | |
var tz = java.util.TimeZone.getTimeZone("UTC"); | |
var df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); // Quoted "Z" to indicate UTC, no timezone offset | |
df.setTimeZone(tz); | |
jobDetails.nextTriggerDate = df.format(nextTriggerDate); | |
groupDetails.jobs.push(jobDetails); | |
} | |
schedulerDetail.groups.push(groupDetails); | |
} | |
dump.schedulers.push(schedulerDetail); | |
} | |
return JSON.stringify(dump); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment