gpt4 book ai didi

c# - 如何在 Quartz.net 每天同一时间开始工作?

转载 作者:太空狗 更新时间:2023-10-29 21:46:13 26 4
gpt4 key购买 nike

我必须每天在太平洋时间午夜执行作业。我正在将 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 服务。

但也有一些你可以检查的东西:

  1. 尝试使用更短的时间(即,如果将间隔设置为 1 分钟,检查这是否有效)。
  2. 尝试 CronTrigger - 我在 Windows 服务中使用它并且工作正常。

有一些文章解释了在 Web 应用程序中托管计划任务的优缺点,即。这个:http://www.foliotek.com/devblog/running-a-scheduled-task/ .

关于c# - 如何在 Quartz.net 每天同一时间开始工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com