如何在Azure Webjob V3中配置TimerTrigger?

时间:2019-08-29 07:44:20

标签: azure-webjobssdk timer-trigger

我刚刚将webjob更新为azure-sdk的版本3。这份工作有一个TimerTrigger,并且可以选择使用连接字符串来创建appsettings.json文件,我希望使用TimerOptions类来设置ConnectionString,但令我惊讶的是该类为空?!。

我偶然发现了这个https://github.com/Azure/azure-webjobs-sdk/issues/2178

1 个答案:

答案 0 :(得分:0)

我发现了有关TimerTrigger的上述情况的解决方法。在ConfigureHostConfiguration中,我们可以使用AddInMemoryCollection来设置connectionString“ AzureWebJobsStorage”。

Dictionary<string, string> connectionStrings =
   new Dictionary<string, string>
   {
      { "AzureWebJobsStorage", ConfigurationManager.ConnectionStrings["AzureWebJobsStorage"].ConnectionString},
};

builder.ConfigureHostConfiguration(config =>
   {
      config.AddInMemoryCollection(connectionStrings);
   });

遗憾的是,这不适用于ServiceBusTriggers。但是有了ServiceBusTriggers,我们有一个ServiceBusOptions,它不为空,因此可以使用。

builder.ConfigureWebJobs(b =>
   {
      b.AddAzureStorageCoreServices();
      b.AddServiceBus(options =>
      {
         options.MessageHandlerOptions.AutoComplete = false;
         options.ConnectionString = 
       ConfigurationManager.ConnectionStrings["AzureWebJobsServiceBus"].ConnectionString;
      });

      b.AddTimers();
});