0

我有一个 Azure Web 应用程序,其中包含一些用于运行一些后台任务的 Web 作业。这些任务需要按计划运行(每 6 小时一次)。使用 WebJob 很容易实现目标。但是,最近我们决定使用 Web 角色而不是 Web 应用程序。为了运行后台任务,我一直在研究使用 Worker Roles 代替 WebJobs。但是,我在安排任务时遇到了问题。
如何安排工作人员角色中的任务?此外,由于我正在使用云服务的多个实例,我是否需要采取一些额外的预防措施来确保只有一个工作者角色实例在一个时间点运行任务?

4

1 回答 1

2

可以在辅助角色中使用Azure WebJobs SDK来安排任务。SDK 包含一个TimerTrigger扩展(详情请点击此处),可用于按计划运行功能。例如,您可以简单地编写一个函数:

// Runs once every 6 hours
public static void TimerJob([TimerTrigger("06:00:00")] TimerInfo timer)
{
    Console.WriteLine("Timer job fired!");
}

您的启动代码如下所示:

JobHostConfiguration config = new JobHostConfiguration();
config.UseTimers();

JobHost host = new JobHost(config);
host.RunAndBlock();
于 2015-12-09T15:27:04.400 回答