我正在使用 Quartz.Net 来安排任务。我已经试过了。
启动了一个 visual studio 控制台应用程序并添加了两个引用,即 Quartz.dll 和 Common.Logging.dll 以及 System.Web.Services;
然后我为链接 http://simplequartzschedulerincsharp.blogspot.com/ 上提供的正常任务编写了一些代码
(他们声称它有效)
但是当我尝试运行该程序时,它给出了“缺少对 Quartz.all 的引用”的错误,但我已经添加了它。
为什么会这样?
我还在某处注意到需要安装 Quartz.Server.Service 才能使用它等等。
请指导我并告诉我一个简单但有效的示例和我缺少的要点?
网站上的示例可能已过时。
我对使用的类做了一些修改,现在它运行了:
using System;
using Quartz;
using Quartz.Impl;
using Quartz.Impl.Triggers;
// Necessary references:
// Quartz dll
// Common.Logging
// System.Web
// System.Web.Services
namespace QuartzExample
{
class Program
{
private static IScheduler _scheduler;
static void Main(string[] args)
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
_scheduler = schedulerFactory.GetScheduler();
_scheduler.Start();
Console.WriteLine("Starting Scheduler");
AddJob();
}
public static void AddJob()
{
IMyJob myJob = new MyJob(); //This Constructor needs to be parameterless
JobDetailImpl jobDetail = new JobDetailImpl("Job1", "Group1", myJob.GetType());
CronTriggerImpl trigger = new CronTriggerImpl("Trigger1", "Group1", "0 * 8-17 * * ?"); //run every minute between the hours of 8am and 5pm
_scheduler.ScheduleJob(jobDetail, trigger);
DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc();
Console.WriteLine("Next Fire Time:" + nextFireTime.Value);
}
}
internal class MyJob : IMyJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine("In MyJob class");
DoMoreWork();
}
public void DoMoreWork()
{
Console.WriteLine("Do More Work");
}
}
internal interface IMyJob : IJob
{
}
}