在 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();
我有一个 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();