在 Worker Role 中模仿 Webjob 中的 Schedule 功能

Mimicking Schedule function in Webjob in Worker Role

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

您可以按时使用Azure WebJobs SDK in a Worker Role to schedule tasks. The SDK includes a TimerTrigger extension (details here)可以使用运行的功能。例如你可以简单地写一个函数:

// 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();