具有计时器触发器的Web作业

时间:2020-05-08 20:44:56

标签: c# azure azure-webjobs

我有一个Web作业,它侦听两个不同的队列,而不是在Functions.cs中编写,我的代码(我继承的代码)看起来像这样。

 UnityContainer container = RegisterContainers();      
        var config = new JobHostConfiguration
        {
            JobActivator = new UnityResolver(container)
        };           
        var host = new JobHost(config);
        ScheduledQueueListener schedulerQueueListener = container.Resolve<ScheduledQueueListener>();
        Thread schedulerQueueThread = new Thread(schedulerQueueListener.Listen);
        schedulerQueueThread.Start();
        Thread genericQueueThread = new Thread(schedulerQueueListener.GenericQueueListen);
        genericQueueThread.Start();
        host.RunAndBlock();
    }

现在来解决我的问题。我希望按此处Timer Trigger所述在Function.cs中创建一个计时器触发,它位于Microsoft.Azure.WebJobs.Extensions的nuget下,并且在Nuget安装JoHostConfiguration不再有效之后,它中断了当前代码。我在webjob中可以做的任何事情,而不是添加azure Scheduler / az函数将消息推送到已经在听的队列中

1 个答案:

答案 0 :(得分:1)

Azure WebJob库从1.x / 2.x显着更改为3.x。我猜想当您安装Microsoft.Azure.WebJobs.Extensions Nuget软件包时-您选择了最新版本,这也会将您的其他WebJob软件包也升级到3.x。在3.x中,JobHostConfiguration已被替换。

如果返回到工作代码,然后安装Microsoft.Azure.WebJobs.Extensions Nuget软件包的最新2.x版本,则应该能够使用TimerTrigger属性而不会破坏JobHostConfiguration代码。

更多信息在这里-https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#webjobs-host