现在做的项目都有用到Schedule,现在用一点时间来总结。

一、首先要到Nuget中下载Quartz.net。

二、下载下来了,你需要对它进行配置,使它能给你正常的使用。

三、在Global.asax中进行quartz进行初始化。

四、quartz_jobs_Schedule.xml 可以在这边个格式是这样的。 

<schedule>
<name>DownloadDso</name>
<job-type>LocalKwmsOne.Schedule.Jobs.DownloadDSOToSystem, LocalKwmsOne.Schedule</job-type>
<durable>true</durable>
<recover>false</recover>
<cron-expression>0/45 * * * * ?</cron-expression>
<status>Enabled</status>
</schedule>

五、这边一个建立一个list来保存xml文件中的节点中各个字段的值。

public List<ScheduleTask> ScheduleTaskInit()
{
List<ScheduleTask> ScheduleTask = new List<ScheduleTask>();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(quartz_jobs_Schedule_Path);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("job-scheduling-data").ChildNodes;

foreach (XmlNode xn in nodeList)
{

string taskName = String.Empty;
string taskType = String.Empty;
string cronString = String.Empty;
string taskStatus = String.Empty;
Dictionary<string, object> taskParameter = new Dictionary<string, object>();

XmlElement xe = (XmlElement)xn;
XmlNodeList nls = xe.ChildNodes;
foreach (XmlNode xn1 in nls)
{
if (xn1.Name == "name")
{
taskName = xn1.InnerText;
continue;
}
if (xn1.Name == "job-type")
{
taskType = xn1.InnerText.Split(',')[0];
continue;
}
if (xn1.Name == "status")
{
taskStatus = xn1.InnerText;
continue;
}
if (xn1.Name == "cron-expression")
{
cronString = xn1.InnerText;
continue;
}
taskParameter.Add(xn1.Name, xn1.InnerText);
}
if (ScheduleTask.Where(t => t.TaskName.Equals(taskName)) != null && ScheduleTask.Where(t => t.TaskName.Equals(taskName)).Count() > 0)
continue;
ScheduleTask.Add(new ScheduleTask(taskName, taskType, cronString, taskParameter, taskStatus));
}
return ScheduleTask;
}

六、然后在global中进行参数传入,进行foreach每一个list初始化,scheduler.scheduleJob(,);这边进行Schedule的

设置。

04-30 23:15