我有一个监听两个不同队列的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不再有效。
我猜测当你安装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。