c# - Quartz.Net 调度程序在 Azure 中不起作用
问题描述
所以我在 C# 中使用 Quartz.Net 创建了一个 SimpleSchedular,如下所示 -
我已经创建了这个内部WebApi
项目。
// Grab the Scheduler instance from the Factory
NameValueCollection props = new NameValueCollection
{
{ "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
IScheduler scheduler = await factory.GetScheduler();
// and start it off
await scheduler.Start();
// define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<IDGJob>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())
.Build();
// Tell quartz to schedule the job using our trigger
await scheduler.ScheduleJob(job, trigger);
这在 localhost 中就像一个魅力,但是一旦我将它部署到 Azure,它就什么也没做。
所以我做了一些谷歌搜索,发现 Azure 在东部标准时间工作 -
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var cronScheduleBuilder = CronScheduleBuilder.DailyAtHourAndMinute(19, 10)
.InTimeZone(timeZoneInfo);
并将调度程序更改为 -
ITrigger trigger = TriggerBuilder.Create()
.StartNow()
.WithSchedule(cronScheduleBuilder)
.Build();
我也尝试过 UTC 格式。
但仍然没有任何工作。
我什至使用RoleEntryPoint
了类,但结果再次相同。
这个 Quartz 真的可以在 Azure 上工作还是我错过了什么。
解决方案
推荐阅读
- angular - 检索新 JWT 令牌的 Angular HttpInterceptor 请求导致无限循环
- javascript - join("") 在只有一个元素的字符串数组上调用。目的?
- python - 程序翻转数字的数字并始终打印出 3 位数字的答案
- java - android.support.v4.app.fragment 和 androidx.fragment.app.FragmentActivity 有什么区别
- java - 如何将 WebSocketMessageBrokerConfigurer 从应用程序的其余部分提取到单独的包中
- delphi - EReadError - 当我尝试创建 Delphi 单元时属性值无效
- sql - Oracle SQL 行成列
- asp.net-mvc - 我的实体框架更新是插入一个新行而不是更新我想要它的那一行
- swift - Debounce 运算符在 Combine 中破坏了发布者
- python - Python tox:在成功的测试运行时显示标准输出/打印?