我已经能够使用Microsoft Azure Scheduler Management Library在Azure Scheduler中成功安排作业,除了每周特定日期之外的所有时间间隔。例如,我需要安排一个在该月的第一个星期四每1个月运行一次的重复性工作。 Azure Scheduler门户允许这样做,但我无法弄清楚如何使用Azure库对此进行编码。
以下是我尝试过的最新代码。 Azure Scheduler最终创建每月定期作业(在Azure门户中查看)但它没有显示任何星期几的选择(它们都未经检查),因此代码不起作用。
我在网上搜索了详尽的文档或示例,以便在此方案中使用调度程序库,但是空白了。我正在寻找一个有效的代码示例,用于每月重复发生。
var monthlyOccurrence = new List<JobScheduleMonthlyOccurrence>();
monthlyOccurrence.Add(new JobScheduleMonthlyOccurrence() { Day = JobScheduleDay.Thursday, Occurrence = 1 });
JobCreateOrUpdateResponse jobResp = schedClient.Jobs.CreateOrUpdate("testRecurrenceIssue", new JobCreateOrUpdateParameters
{
Action = new JobAction
{
Request = new JobHttpRequest { Uri = new Uri("http://www.myservice.com"), Method = "GET" },
},
Recurrence = new JobRecurrence
{
Frequency = JobRecurrenceFrequency.Month,
Interval = 1,
EndTime = new DateTime(2014, 12, 31),
Schedule = new JobRecurrenceSchedule
{
Days = null,
Hours = null,
Minutes = null,
MonthDays = null,
MonthlyOccurrences = monthlyOccurrence,
Months = null
}
}
});
请注意,我已经能够安排每月特定日期的每月重复,例如“在第1,14,21和28天每月运行”,但无法弄清楚如何编码特定日期我上面提到过的一周情景。谢谢你的帮助!
答案 0 :(得分:1)
我是负责管理库的PM之一,包括Scheduler SDK。他们是我们的合作伙伴团队之一,我们支持他们开发SDK。此时,Scheduler SDK正常运行,我们在开发其他即将发布的其他产品的过程中使用了他们的SDK,因此我可以证明它在大多数使用中都具有此功能。 - 情况。我也会要求Scheduler PM看一下这篇文章,因为他可能有关于SDK状态的其他信息,并且可能有其他信息可以帮助你开发。
在GitHub上看看这个回购。我把它作为设置预定WebJobs的原型。由于WebJobs功能实际上利用调度程序来安排作业&#39;执行,这似乎是一个非常好的演示案例,展示了如何在MAML中一起使用2个不同的Azure资产。
https://github.com/bradygaster/maml-demo-scheduled-webjob-creator
答案 1 :(得分:0)
这是一个适合我的代码段。正如您所提到的,JobScheduleDay.Sunday存在一个问题。我们正在积极研究这个问题。
{
JobCreateOrUpdateResponse jobResp = schedClient.Jobs.CreateOrUpdate("testComplexRecurrenceTwoDays", new JobCreateOrUpdateParameters
{
Action = new JobAction
{
Request = new JobHttpRequest { Uri = new Uri("http://www.bing.com"), Method = "GET" },
},
Recurrence = new JobRecurrence
{
Frequency = JobRecurrenceFrequency.Month,
Schedule = new JobRecurrenceSchedule
{
Days = null,
Hours = null,
Minutes = null,
MonthDays = null,
MonthlyOccurrences = new List<JobScheduleMonthlyOccurrence> {
new JobScheduleMonthlyOccurrence { Day = JobScheduleDay.Thursday, Occurrence = 1}
},
Months = null
}
}
});
}