昨天简单写了一下如何使用Quzrtz.NET。
那么问题来了,我设置了Cron表达式之后如何知道是表达式是否按照预期的时间执行了呢?
我找到了些Cron表达式工具生成了表达式,确发现它们基本上没有进行校验是否正确。
那么好,我们来自己实现一个吧。
首先我们建立了一个项目并引用Quartz.NET的dll类库
然后稍微制作一下UI吧,放一个文本框和显示列表以及一个按钮。
代码如下
private string[] weekStr = "星期日,星期一,星期二,星期三,星期四,星期五,星期六".Split(','); private void btnShow_Click(object sender, EventArgs e)
{
try
{
lbDate.Items.Clear(); if (CronExpression.IsValidExpression(tbCron.Text))
{
CronTriggerImpl cron = new CronTriggerImpl("testName", "testGroup", tbCron.Text); ICalendar calendar = new BaseCalendar(TimeZoneInfo.Local); var list = TriggerUtils.ComputeFireTimes(cron, calendar, (int)numShowNumber.Value); foreach (var d in list)
{
lbDate.Items.Add(weekStr[(int)d.LocalDateTime.DayOfWeek] + " " + d.LocalDateTime.ToString());
}
}
else
{
lbDate.Items.Add("Cron表达式不符合规格。");
}
}
catch (Exception exp)
{
lbDate.Items.Add(exp.Message);
}
}
工具:下载链接
代码:下载链接