在Azure调度程序中,如何以编程方式创建定期月度作业?

在Azure调度程序中,如何以编程方式创建定期月度作业?,azure,scheduler,azure-scheduler,Azure,Scheduler,Azure Scheduler,我已经能够在Azure Scheduler中成功地调度作业,在一周中的某一特定日子使用每月以外的所有时间间隔。例如,我需要在每月的第一个星期四安排每1个月运行一次的定期作业。Azure调度器门户允许这样做,但我不知道如何使用Azure库编写代码 下面是我尝试过的最新代码。Azure Scheduler最终创建了一个每月定期作业(在Azure门户中查看),但它没有显示任何星期几的选择(它们都未选中),因此代码不起作用 我在网上搜遍了这个场景中使用调度器库的文档或示例,但结果是空的。我正在寻找这个每

我已经能够在Azure Scheduler中成功地调度作业,在一周中的某一特定日子使用每月以外的所有时间间隔。例如,我需要在每月的第一个星期四安排每1个月运行一次的定期作业。Azure调度器门户允许这样做,但我不知道如何使用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
        }
    }
});
var monthlyOccurrence=new List();
monthlyOccurrence.Add(new JobScheduleMonthlyOccurrence(){Day=JobScheduleDay.星期四,事件=1});
JobCreateOrUpdateResponse jobResp=schedClient.Jobs.CreateOrUpdate(“testRecurrenceIssue”,新JobCreateOrUpdateParameters
{
动作=新作业动作
{
请求=新作业HttpRequest{Uri=新Uri(“http://www.myservice.com“”,Method=“GET”},
},
重复=新作业重复
{
频率=工作重复频率。月份,
间隔=1,
EndTime=新的日期时间(2014年12月31日),
计划=新作业重复计划
{
天=空,
小时=零,
分钟=空,
MonthDays=null,
月发生率=月发生率,
月份=空
}
}
});

请注意,我已经能够为一个月中的特定天数安排一次每月重复,例如“每月在第1天、第14天、第21天和第28天运行”,但我不知道如何对我上面提到的特定星期几场景进行编码。谢谢你的帮助

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

看看GitHub上的回购协议。我将此作为设置计划WebJobs的原型。由于WebJobs功能实际上利用调度程序来调度作业的执行,因此这似乎是一个非常好的演示案例,展示了如何在MAML中同时使用两个不同的Azure资产


这是一段适合我的代码片段。正如您所提到的,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
                }
            }
            });
}
{
JobCreateOrUpdateResponse jobResp=schedClient.Jobs.CreateOrUpdate(“testComplexRecurrenceTwoDays”,新JobCreateOrUpdateParameters
{
动作=新作业动作
{
请求=新作业HttpRequest{Uri=新Uri(“http://www.bing.com“”,Method=“GET”},
},
重复=新作业重复
{
频率=工作重复频率。月份,
计划=新作业重复计划
{
天=空,
小时=零,
分钟=空,
MonthDays=null,
MonthlyOccurrences=新列表{
new JobScheduleMonthlyOccurrence{Day=JobScheduleDay.星期四,发生率=1}
},
月份=空
}
}
});
}

更新此。。。如果我将另一个JobScheduleMonthlyOccurrence添加到monthlyOccurrence集合,则会识别第二个JobScheduleMonthlyOccurrence;第一个已丢失/忽略。另外,使用JobScheduleDay.Sunday不起作用;JobScheduleDay的所有其他日期枚举都已识别。目前,我的评估是,计划程序库95%正常工作并已完成。5%的差距可能会对您造成阻碍,尤其是对于每月的作业调度,因此我将首先测试您最高级或最复杂的需求。Microsoft在这个库上还有一些工作要做,以完成它并编写示例/文档。更新:您现在应该能够使用JobScheduleDay.Sunday。如果您继续看到任何问题,请告知我们。谢谢。我现在试试星期天,谢谢。以您的例子来说,有人会如何表示每月的事件应该发生在星期四,而不是一个月的第一个和第三个星期四?是否需要为该第二次出现值创建另一个JobScheduleMonthlyOccurrence?周一、周三和周五以及每个月的第一次和第四次的月计划如何?Azure门户可以处理这些情况,但MonthlyOccurrences属性和/或JobScheduleMonthlyOccurrence类似乎不能建立相同的作业。@TimDutcher是的,这是正确的。JobScheduleMonthyOccurence对象仅指示计划中的一个执行部分。因此,如果作业需要在每个月的第1个和第3个星期四执行,则MonthlyOccurrences应该如下所示:MonthlyOccurrences=new List{new job ScheduleMonthlyOccurrence{Day=job ScheduleDay.星期四,事件=1},new JobScheduleMonthlyOccurrence{Day=JobScheduleDay.星期四,Occurrence=3}很高兴看到一些示例。不幸的是,调度器库仍然不支持每月的场景,例如“每1个月”