【发布时间】:2012-09-13 15:25:38
【问题描述】:
我有一个 Web 应用程序,我正在尝试设置一个触发器以在应用程序启动时启动,然后每 5 分钟触发一次
一切都在 Global.asax 中 - 似乎是放置它的正确位置:
public class Global : HttpApplication
{
public static StdSchedulerFactory SchedulerFactory;
public static IScheduler Scheduler;
public static ITrigger ImageTrigger;
protected void Application_Start(object sender, EventArgs e)
{
SchedulerFactory = new StdSchedulerFactory();
Scheduler = SchedulerFactory.GetScheduler();
Scheduler.Start();
ImageTrigger = TriggerBuilder.Create()
.WithIdentity("ImageTrigger", "Group1")
.StartNow()
.WithSimpleSchedule(x => x.RepeatForever().WithIntervalInMinutes(5))
.Build();
var imageJob = JobBuilder.Create<DownloadImages>()
.WithIdentity("DownloadImages" , "Group1")
.Build();
Scheduler.ScheduleJob(imageJob, ImageTrigger);
}
...
}
所以我假设有一个简单的时间表使用 .WithIntervalInMiniutes() 会导致作业被调用或它是否出现严重错误?
附:我也试过:
AlertTrigger = TriggerBuilder.Create()
.WithIdentity("AlertTrigger", "Group1")
.StartNow()
.WithCronSchedule("0 0/1 * * * ?")
.Build();
接着对着电脑尖叫!
提前感谢您的帮助。
马特
【问题讨论】:
-
WithSimpleSchedule 看起来不错。您不仅忘记了安排作业 - 即 Scheduler.ScheduleJob(imageJob, ImageTrigger);
-
对不起,确实有,但忘记在帖子中添加它
-
@Matt:您是否尝试在 Web 服务中安排您的工作?
-
你应该可以调用 ImageTrigger.GetNextFireTimeUtc();和 ImageTrigger.GetFireTimeAfter(dt) 以查看作业是否已正确安排。
-
尝试启用日志记录,如果在调试模式下运行,请尝试将 Visual Studio 设置为中断所有异常。甚至可能是您的作业构造函数抛出错误或出现错误(异步),否则(作业中没有无参数的公共构造函数等)。
标签: c# asp.net web-services quartz.net quartz.net-2.0