public ResponseBase AddAndScheduleJob(string jobType, string jobName, string jobGroupName, string triggerName, string triggerGroupName, QuickRepeatIntervals quickRepeatInterval, int intervalValue, int?nTimes) { if (quickRepeatInterval == QuickRepeatIntervals.None) { throw new SchedulerServiceError("None is null"); } if (string.IsNullOrEmpty(jobName)) { throw new SchedulerServiceError("JobName is null"); } if (string.IsNullOrEmpty(jobGroupName)) { throw new SchedulerServiceError("JobGroupName is null"); } if (string.IsNullOrEmpty(triggerName)) { throw new SchedulerServiceError("TriggerName is null"); } if (string.IsNullOrEmpty(triggerGroupName)) { throw new SchedulerServiceError("TriggerGroupName is null"); } Type tJob = Resolver.ResolveType(jobType); var runSimpleMapTest = GetType().GetMethod("AddAndScheduleGenericJob"); var runSimpleMapTestForType = runSimpleMapTest.MakeGenericMethod(tJob); object[] objects = new object[7]; objects[0] = jobName.Trim(); objects[1] = jobGroupName.Trim(); objects[2] = triggerName.Trim(); objects[3] = triggerGroupName.Trim(); objects[4] = quickRepeatInterval; objects[5] = intervalValue; objects[6] = nTimes; var obj = runSimpleMapTestForType.Invoke(this, objects); return(new ResponseBase()); }
public void AddAndScheduleGenericJob <T>(string jobName, string jobGroupName, string triggerName, string triggerGroupName, QuickRepeatIntervals quickRepeatInterval, int intervalValue, int?nTimes) where T : class { IScheduler scheduler = GetScheduler(); JobDetailImpl jobDetail = new JobDetailImpl(jobName, jobGroupName, typeof(T)); ITrigger trigger = null; switch (quickRepeatInterval) { case QuickRepeatIntervals.EverySecond: trigger = TriggerBuilder.Create() .StartNow() .WithIdentity(triggerName, triggerGroupName) .WithSchedule(nTimes.HasValue ? SimpleScheduleBuilder.RepeatSecondlyForTotalCount(nTimes.Value, intervalValue) : SimpleScheduleBuilder.RepeatSecondlyForever(intervalValue)) .Build(); break; case QuickRepeatIntervals.EveryMinute: trigger = TriggerBuilder.Create() .StartNow() .WithIdentity(triggerName, triggerGroupName) .WithSchedule(nTimes.HasValue ? SimpleScheduleBuilder.RepeatMinutelyForTotalCount(nTimes.Value, intervalValue) : SimpleScheduleBuilder.RepeatMinutelyForever(intervalValue)) .Build(); break; case QuickRepeatIntervals.EveryHour: trigger = TriggerBuilder.Create() .StartNow() .WithIdentity(triggerName, triggerGroupName) .WithSchedule(nTimes.HasValue ? SimpleScheduleBuilder.RepeatHourlyForTotalCount(nTimes.Value, intervalValue) : SimpleScheduleBuilder.RepeatHourlyForever(intervalValue)) .Build(); break; } scheduler.ScheduleJob(jobDetail, trigger); //scheduler.Shutdown(); }