带定时器触发的网络作业

问题描述 投票:0回答:1

我有一个监听两个不同队列的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();
    }

现在来谈谈我的问题。我希望在Functions.cs中创建一个定时器触发器,就像这里提到的那样。计时器触发器 在Microsoft.Azure.WebJobs.Extensions的nuget下,它打破了当前的代码,因为在Nuget安装后JoHostConfiguration不再有效。

c# azure azure-webjobs
1个回答
1
投票

我猜测当你安装Microsoft.Azure.WebJobs.Extensions Nuget包时,你选择了最新的版本,这将使你的其他WebJob包也升级到3.x。在3.x中,JobHostConfiguration已被替换。

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

更多信息在这里 - https:/docs.microsoft.comen-usazureapp-servicewebjobs-sdk-how-to#webjobs-host。

© www.soinside.com 2019 - 2024. All rights reserved.