作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我必须每天在太平洋时间午夜执行作业。我正在将 MVC3 与 Quartz.NET 库一起使用。
这是我的代码:
public static void ConfigureQuartzJobs()
{
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
DateTime dateInDestinationTimeZone = System.TimeZoneInfo
.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, System.TimeZoneInfo.Utc.Id, "Pacific Standard Time").Date;
IJobDetail job = JobBuilder.Create<TimeJob>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(dateInDestinationTimeZone)
.WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
.Build();
sched.ScheduleJob(job, trigger);
sched.Start();
}
此代码使此作业仅在第一个午夜(太平洋时间)运行一次。我在那里设置了 .WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
但它不起作用 - 工作不是每天都重复。
我该怎么做才能让它每天正常工作?
最佳答案
您的计划任务是否由 Web 应用程序托管?如果是这样,您可能会遇到此类问题。 Web 应用程序不适合运行计划任务。您应该创建托管计划任务的 Windows 服务。
但也有一些你可以检查的东西:
有一些文章解释了在 Web 应用程序中托管计划任务的优缺点,即。这个:http://www.foliotek.com/devblog/running-a-scheduled-task/ .
关于c# - 如何在 Quartz.net 每天同一时间开始工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380450/
我是一名优秀的程序员,十分优秀!