@@ -50,23 +50,37 @@ public virtual void ScheduleJobWithCronTrigger(CronTrigger triggerDefinition)
5050 var jobType = GetRegisteredJobTypeByName ( triggerDefinition . JobType ) ;
5151 var jobDetail = JobDetailFactory ( jobType ) ;
5252 var trigger = CronTriggerFactory ( triggerDefinition , jobType , jobDetail ) ;
53- TryScheduleJobWithTrigger ( trigger , jobType , jobDetail ) ;
53+ TryScheduleJobWithTrigger ( trigger , jobType , jobDetail , triggerDefinition . StateId ) ;
5454 }
5555
5656 public void ScheduleJobWithSimpleTrigger ( SimpleTrigger triggerDefinition )
5757 {
5858 var jobType = GetRegisteredJobTypeByName ( triggerDefinition . JobType ) ;
5959 var jobDetail = JobDetailFactory ( jobType ) ;
6060 var trigger = SimpleTriggerFactory ( triggerDefinition , jobType , jobDetail ) ;
61- TryScheduleJobWithTrigger ( trigger , jobType , jobDetail ) ;
61+ TryScheduleJobWithTrigger ( trigger , jobType , jobDetail , triggerDefinition . StateId ) ;
6262 }
6363
64- public void TryScheduleJobWithTrigger ( ITrigger trigger , Type jobType , IJobDetail jobDetail )
64+ public void TryScheduleJobWithTrigger ( ITrigger trigger , Type jobType , IJobDetail jobDetail , int stateId )
6565 {
6666 if ( Scheduler . CheckExists ( jobDetail . Key ) )
6767 Scheduler . RescheduleJob ( trigger . Key , trigger ) ;
6868 else
6969 Scheduler . ScheduleJob ( jobDetail , trigger ) ;
70+ SetTriggerState ( trigger . Key , stateId ) ;
71+ }
72+
73+ public void SetTriggerState ( TriggerKey triggerKey , int triggerState )
74+ {
75+ switch ( ( TriggerState ) triggerState )
76+ {
77+ case TriggerState . Paused :
78+ Scheduler . PauseTrigger ( triggerKey ) ;
79+ break ;
80+ case TriggerState . Normal :
81+ Scheduler . ResumeTrigger ( triggerKey ) ;
82+ break ;
83+ }
7084 }
7185
7286 public void ScheduleJobsWithTriggers ( IEnumerable < IIntegrationJobTrigger > triggerDefs , Type jobType , IJobDetail jobDetail )
@@ -82,16 +96,23 @@ public void ScheduleJobsWithTriggers(IEnumerable<IIntegrationJobTrigger> trigger
8296 triggersForJobs . Add ( SimpleTriggerFactory ( triggerDef as SimpleTrigger , jobType , jobDetail ) ) ;
8397 }
8498 Scheduler . ScheduleJob ( jobDetail , triggersForJobs , true ) ;
99+ foreach ( var triggerDef in triggerDefs )
100+ SetTriggerState ( TriggerKeyFactory ( triggerDef , jobType ) , triggerDef . StateId ) ;
101+ }
102+
103+ TriggerKey TriggerKeyFactory ( IIntegrationJobTrigger integrationJobTrigger , Type jobType )
104+ {
105+ return new TriggerKey ( integrationJobTrigger . Id , jobType . FullName ) ;
85106 }
86107
87- TriggerBuilder TriggerBuilderFactory ( string triggerName , string triggerGroup )
108+ TriggerBuilder TriggerBuilderFactory ( IIntegrationJobTrigger integrationJobTrigger , Type jobType )
88109 {
89- return TriggerBuilder . Create ( ) . WithIdentity ( new TriggerKey ( triggerName , triggerGroup ) ) ;
110+ return TriggerBuilder . Create ( ) . WithIdentity ( TriggerKeyFactory ( integrationJobTrigger , jobType ) ) ;
90111 }
91112
92113 public ITrigger SimpleTriggerFactory ( SimpleTrigger triggerDefinition , Type jobType , IJobDetail jobDetail )
93114 {
94- var triggerBuilder = TriggerBuilderFactory ( triggerDefinition . Id , jobType . FullName ) ;
115+ var triggerBuilder = TriggerBuilderFactory ( triggerDefinition , jobType ) ;
95116 Action < SimpleScheduleBuilder > simpleScheduleBuilderAction ;
96117 if ( triggerDefinition . RepeatCount > 0 )
97118 simpleScheduleBuilderAction = x => x . WithInterval ( triggerDefinition . RepeatInterval ) . WithRepeatCount ( triggerDefinition . RepeatCount ) ;
@@ -107,7 +128,7 @@ public ITrigger SimpleTriggerFactory(SimpleTrigger triggerDefinition, Type jobTy
107128
108129 public ITrigger CronTriggerFactory ( CronTrigger triggerDefinition , Type jobType , IJobDetail jobDetail )
109130 {
110- var triggerBuilder = TriggerBuilderFactory ( triggerDefinition . Id , jobType . FullName ) ;
131+ var triggerBuilder = TriggerBuilderFactory ( triggerDefinition , jobType ) ;
111132 triggerBuilder . WithCronSchedule ( triggerDefinition . CronExpressionString , x => x . InTimeZone ( triggerDefinition . TimeZoneInfo ) ) ;
112133 return triggerBuilder . Build ( ) ;
113134 }
0 commit comments