Update quartz job runner to log when finished (and to include same pairs in exception)

This commit is contained in:
2024-03-20 16:13:27 -05:00
parent 0d6538593b
commit 30ee8ce3bf

View File

@ -47,6 +47,7 @@ public class QuartzJobRunner implements Job
private static Level logLevel = null; private static Level logLevel = null;
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/
@ -54,25 +55,38 @@ public class QuartzJobRunner implements Job
public void execute(JobExecutionContext context) throws JobExecutionException public void execute(JobExecutionContext context) throws JobExecutionException
{ {
CapturedContext capturedContext = QContext.capture(); CapturedContext capturedContext = QContext.capture();
String name = null;
SchedulableType schedulableType = null;
Map<String, Object> params = null;
try try
{ {
name = context.getJobDetail().getKey().getName();
QuartzScheduler quartzScheduler = QuartzScheduler.getInstance(); QuartzScheduler quartzScheduler = QuartzScheduler.getInstance();
QInstance qInstance = quartzScheduler.getQInstance(); QInstance qInstance = quartzScheduler.getQInstance();
QContext.init(qInstance, quartzScheduler.getSessionSupplier().get()); QContext.init(qInstance, quartzScheduler.getSessionSupplier().get());
SchedulableType schedulableType = qInstance.getSchedulableType(context.getJobDetail().getJobDataMap().getString("type")); schedulableType = qInstance.getSchedulableType(context.getJobDetail().getJobDataMap().getString("type"));
Map<String, Object> params = (Map<String, Object>) context.getJobDetail().getJobDataMap().get("params"); params = (Map<String, Object>) context.getJobDetail().getJobDataMap().get("params");
SchedulableRunner schedulableRunner = QCodeLoader.getAdHoc(SchedulableRunner.class, schedulableType.getRunner()); SchedulableRunner schedulableRunner = QCodeLoader.getAdHoc(SchedulableRunner.class, schedulableType.getRunner());
if(logLevel != null) if(logLevel != null)
{ {
LOG.log(logLevel, "Running QuartzJob", null, logPair("type", schedulableType.getName()), logPair("name", context.getJobDetail().getKey().getName()), logPair("params", params)); LOG.log(logLevel, "Running QuartzJob", null, logPair("name", name), logPair("type", schedulableType.getName()), logPair("params", params));
} }
schedulableRunner.run(params); schedulableRunner.run(params);
if(logLevel != null)
{
LOG.log(logLevel, "Finished QuartzJob", null, logPair("name", name), logPair("type", schedulableType.getName()), logPair("params", params));
}
} }
catch(Exception e) catch(Exception e)
{ {
LOG.warn("Error running QuartzJob", e, logPair("jobContext", context)); LOG.warn("Error running QuartzJob", e, logPair("name", name), logPair("type", schedulableType == null ? null : schedulableType.getName()), logPair("params", params));
} }
finally finally
{ {
@ -81,6 +95,7 @@ public class QuartzJobRunner implements Job
} }
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/