随着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的外观>功能。这样可以启用以下方案:
- 您可以定义QueueName不显式的功能。您可以从配置源读取队列名称,并在运行时指定此值。
- 将功能发现限制为特定的类或程序集。
- 索引时的动态函数:您可以在运行时定义函数签名。
醇>
但是没有关于如何做的示例代码。
有没有人知道如何在运行时定义队列名称(例如从app.config开始)?
答案 0 :(得分:3)
如果您在配置中利用新的INameResolver,您可以自己实现接口并在JobHostConfiguration中替换它。看看这个blog post我在这个主题上做了一个小POC。
答案 1 :(得分: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 Code中,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();
}