Skip to content

Commit fbbc5ec

Browse files
committed
Do not attempt to schedule triggers with no cron expression
1 parent d790eb2 commit fbbc5ec

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

IntegrationEngine/EngineHostConfiguration.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,28 @@ public void SetupMessageQueueClient()
128128

129129
public void SetupScheduler()
130130
{
131+
var log = Container.Resolve<ILog>();
131132
var engineScheduler = new EngineScheduler() {
132133
Scheduler = StdSchedulerFactory.GetDefaultScheduler(),
133134
IntegrationJobTypes = IntegrationJobTypes,
134135
MessageQueueClient = Container.Resolve<IMessageQueueClient>(),
135-
Log = Container.Resolve<ILog>(),
136+
Log = log,
136137
};
137138
Container.RegisterInstance<IEngineScheduler>(engineScheduler);
138139
engineScheduler.Start();
140+
139141
var simpleTriggers = Container.Resolve<ESRepository<SimpleTrigger>>().SelectAll();
140-
var cronTriggers = Container.Resolve<ESRepository<CronTrigger>>().SelectAll();
142+
var cronTriggerRepo = Container.Resolve<ESRepository<CronTrigger>>();
143+
var allCronTriggers = cronTriggerRepo.SelectAll();
144+
var cronTriggers = allCronTriggers.Where(x => !string.IsNullOrWhiteSpace(x.CronExpressionString));
141145
foreach (var jobType in IntegrationJobTypes)
142146
{
143147
var jobDetail = engineScheduler.JobDetailFactory(jobType);
144148
engineScheduler.ScheduleJobsWithTriggers(simpleTriggers, jobType, jobDetail);
145149
engineScheduler.ScheduleJobsWithTriggers(cronTriggers, jobType, jobDetail);
146150
}
151+
foreach(var cronTrigger in allCronTriggers.Where(x => string.IsNullOrWhiteSpace(x.CronExpressionString)))
152+
log.Warn(x => x("Cron expression for trigger ({0}) is null, empty, or whitespace.", cronTrigger.Id));
147153
}
148154

149155
public void SetupRScriptRunner()

IntegrationEngine/Scheduler/EngineScheduler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ public ITrigger CronTriggerFactory(CronTrigger triggerDefinition, Type jobType,
156156
{
157157
var triggerBuilder = TriggerBuilderFactory(triggerDefinition.Id, jobType);
158158
triggerBuilder.WithCronSchedule(triggerDefinition.CronExpressionString, x => x.InTimeZone(triggerDefinition.TimeZoneInfo));
159+
159160
return triggerBuilder.Build();
160161
}
161162

0 commit comments

Comments
 (0)