2
我试图通过嵌入到.Net MVC2应用程序中来使Quartz.net工作。我知道这并不理想,但我只是试图在将其转移到服务之前将其启动并运行。我无法启动我的工作,但我认为我配置正确。在我的Global.asax.cs:将Quartz.Net嵌入到Asp.NET MVC2中,而不是触发作业
protected void Application_Start()
{
Quartz.IScheduler scheduler = BuildQuartzScheduler();
...
}
与方法,直接从教程采取:
private IScheduler BuildQuartzScheduler()
{
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(QuartzController));
// fire every hour
Trigger trigger = TriggerUtils.MakeMinutelyTrigger();
// start on the next even hour
trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger);
return sched;
}
与 “控制器:”
public class QuartzController : IJob
{
public QuartzController() {
}
public void Execute(JobExecutionContext context) {
throw new NotImplementedException();
}
}
没什么东西开枪。这是怎么回事?我确定必须有一个简单的语法错误,但它让我疯狂!
它实际上是需要保存为静态变量的调度程序工厂。 – 2010-08-22 10:02:51
这是那些显而易见的答案之一,我们没有看到它。作为补充,您不需要将作业设置为控制器,甚至可以创建逻辑类,然后调用从IJob接口继承的方法。相当有用的东西 – 2011-07-22 16:25:14
@MarkoLahma - 为什么它不是需要保持静态的调度程序?一旦调度程序由工厂创建,它就是需要依赖的调度程序。后续对Quartz的调用是通过调度器对象完成的,而不是工厂。没有? – Matt 2015-07-02 17:43:25