首页 文章

在工作者角色的Webjob中模仿日程安排功能

提问于
浏览
0

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

1 回答

  • 2

    您可以使用辅助角色中的Azure WebJobs SDK来计划任务 . SDK包含 TimerTrigger 扩展名(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();
    

相关问题