【发布时间】:2021-07-30 18:43:49
【问题描述】:
我在这里找到了大量解释选项的信息 - LockDuration、AutoRenew 等 - 但我不知道如何通过代码进行设置?
我们通过代码创建服务总线主题。创建期间在哪里可以设置 LockDuration?
这是服务总线触发 azure 函数:
public static async Task Run(
[ServiceBusTrigger(SB_TOPIC_NAME, SB_MONITOR_SUBSCRIPTION_NAME, AccessRights.Manage, Connection = APP_SETTING_SERVICE_BUS_CONNECTION_STRING)]
BrokeredMessage sbMessage,
ILogger log) {
我尝试将它添加到 host.json,但它没有改变任何东西:
“服务总线”:{ “最大并发呼叫数”:1, "MaxLockDuration": "00:05:00", "autoRenewTimeout": "00:30:00", “自动完成”:真 }
这是我们的主题/订阅创建函数:
public async Task<ITopicClient> GetTopicClient(string connectionString, string topicName)
{
var m = new ManagementClient(connectionString);
var exists = await m.TopicExistsAsync(topicName);
if (!exists)
{
await m.CreateTopicAsync(new TopicDescription(topicName));
}
var topicClient = new TopicClient(connectionString, topicName);
return topicClient;
}
public async Task CreateSubscription(string connectionString, string topicName, string subsciptionName)
{
var m = new ManagementClient(connectionString);
var exists = await m.SubscriptionExistsAsync(topicName, subsciptionName);
if (!exists)
{
await m.CreateSubscriptionAsync(new SubscriptionDescription(topicName, subsciptionName));
}
}
非常感谢任何帮助!
【问题讨论】:
-
host.json 是设置这些值的正确位置。您使用的是哪个版本的 SB 扩展?在大多数版本中,json 看起来有点不同。
"serviceBus": { "sessionHandlerOptions": {"maxConcurrentCalls": 1, "MaxLockDuration": "00:05:00", "autoRenewTimeout": "00:30:00", "autoComplete": true }}docs.microsoft.com/en-us/azure/azure-functions/…
标签: azure-functions azure-servicebus-topics