我有一个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函数将消息推送到已经在听的队列中
答案 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