2

我已经能够使用Microsoft Azure Scheduler Management Library成功地在 Azure Scheduler 中为所有时间间隔安排作业,除了每周特定日期的每月。例如,我需要在每月的第一个星期四安排每 1 个月运行一次的重复作业。Azure Scheduler 门户允许这样做,但我不知道如何使用 Azure 库对此进行编码。

以下是我尝试过的最新代码。Azure 调度程序最终创建了一个每月重复的作业(在 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 天每月运行”,但无法弄清楚如何编写特定的星期几方案我上面提到过。谢谢你的帮助!

4

2 回答 2

1

我是负责管理库(包括调度程序 SDK)的 PM 之一。他们是我们的合作伙伴团队之一,我们支持他们开发 SDK。此时,Scheduler SDK 可以正常工作,并且我们正在开发我们发布的其他产品中的其他一些即将推出的功能时使用他们的 SDK,因此我可以证明它在大多数用例情况下都可以正常工作。我也会请调度员 PM 看看这篇文章,因为他可能有其他关于 SDK 状态的信息,并且可能有其他有助于您开发的信息。

看看 GitHub 上的这个 repo。我将其作为设置计划 WebJobs 的原型。由于 WebJobs 功能实际上利用调度程序来安排作业的执行,这似乎是一个很好的演示案例,展示了如何在 MAML 中一起使用 2 个不同的 Azure 资产。

https://github.com/bradygaster/maml-demo-scheduled-webjob-creator

于 2014-06-11T23:28:47.760 回答
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
                }
            }
            });
}
于 2014-06-18T05:12:46.230 回答