我正在使用Quartz.Net来安排任务。我试过这么聪明。
启动了visual studio控制台应用程序并添加了两个引用,即Quartz.dll和Common.Logging.dll以及System.Web.Services;
然后我对链接http://simplequartzschedulerincsharp.blogspot.com/上提供的正常任务进行了一些编码 (他们声称自己的工作)
但是当我试图运行该程序时,它给出错误为“缺少对Quartz.all的引用”,但我已经添加了这个。
为什么会这样?
还有一点我注意到需要安装Quartz.Server.Service来使用它等等。
请指导我,请给我一个简单但有效的例子和点我错过了?
答案 0 :(得分:11)
网站上的示例可能已过时。
我对使用的类进行了一些修改,现在它运行了:
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
{
}
}