1

随着 Azure Webjobs 3.0.0 SDK 的新版本发布: http ://azure.microsoft.com/blog/2014/06/18/announcing-the-0-3-0-beta-preview-of- microsoft-azure-webjobs-sdk/

改进的功能发现

我们添加了 ITypeLocator 和 INameResolver 来自定义 WebJobs SDK 的外观 > 功能。这可以实现以下场景:

  1. 您可以定义 QueueName 不明确的函数。您可以从配置源读取队列名称并在运行时指定此值。
  2. 将函数发现限制在特定的类或程序集中。
  3. 索引时的动态函数:您可以在运行时定义函数签名。

但是没有关于如何做到这一点的示例代码。

有谁知道如何在运行时定义队列名称(例如来自 app.config)?

4

2 回答 2

3

如果您在配置中利用新的 INameResolver,您可以自己实现接口并在 JobHostConfiguration 中替换它。看看我在这个主题上做了一个小的 POC 的这篇博文。

于 2014-07-01T14:58:55.317 回答
0

要使用外部运行时服务来定义队列的名称:

public class QueueNameResolver : INameResolver
{
    public string Resolve(string practiceId)
    {
        //define in appsettings the queuename property
        return CloudConfigurationManager.GetSetting("queuname");
        //or some other service of your design
    }
}

在 WebJob 代码 Program.cs 中:

    public void init()
    {
        // Retrieve storage account from connection string.            
        string azureJobStorageConnectionString = ConfigurationManager.ConnectionStrings["AzureWebJobsStorage"].ConnectionString;
        var config =
               new JobHostConfiguration(azureJobStorageConnectionString)
               {
                   NameResolver = new QueueNameResolver()
               };
        host = new JobHost(config);
        host.RunAndBlock();
    }

根据azure doco

于 2016-04-19T04:00:58.240 回答