【发布时间】:2016-10-27 00:01:24
【问题描述】:
我是 Quartz.Net 的新手。我有一份计划每小时和每天运行的工作。请在下面找到我的日程安排服务详情。
现在我想切换时间表,以便我可以启用或禁用每小时或每天的时间表。
public class SchedulerService : ISchedulerService
{
private readonly IScheduler _scheduler;
private readonly IConfigurationReader _configReader;
public SchedulerService(IScheduler scheduler, IConfigurationReader configReader)
{
_scheduler = scheduler;
_configReader = configReader;
}
public void Start()
{
StartScheduledJobs();
}
public void Stop()
{
_scheduler.Shutdown(true);
}
private void StartScheduledJobs()
{
try
{
_scheduler.Start();
if(_configReader.HourlyChangeJobEnabled) //Will this work? or is this the way to achieve this?
ScheduleHourlyChangesJob();
if(_configReader.DailyChangeJobEnabled)
ScheduleDailyChangesJob();
}
catch (Exception ex)
{
_logProvider.Error("", ex);
}
}
private void ScheduleHourlyChangesJob()
{
var jobDetail = JobBuilder.Create<SimpleJob>()
.WithIdentity("hourlyJob", "group1")
.UsingJobData("mode","hourly")
.Build();
var trigger = TriggerBuilder.Create()
.WithIdentity("hourlyTrigger", "group1")
.WithSchedule(CronScheduleBuilder.CronSchedule("0 0 1/1 ? * *")
.Build();
_scheduler.ScheduleJob(jobDetail, trigger);
}
private void ScheduleDailyChangesJob()
{
var jobDetail = JobBuilder.Create<SimpleJob>()
.WithIdentity("dailyJob", "group1")
.UsingJobData("mode", "daily")
.Build();
var trigger = TriggerBuilder.Create()
.WithIdentity("dailyTrigger", "group1")
.WithSchedule(CronScheduleBuilder.CronSchedule("0 0 0 1/1 * ?"))
.Build();
_scheduler.ScheduleJob(jobDetail, trigger);
}
}
谁能帮我实现这个目标?
谢谢
【问题讨论】:
标签: c#-4.0 quartz-scheduler quartz.net