.Net Core Azure 服务总线获取当前消息数
.NetCore Azure Servicebus get current message count
从队列中获取计数的旧方法是这样的:
CloudQueue q = queueClient.GetQueueReference(QUEUE_NAME);
q.FetchAttributes();
qCnt = q.ApproximateMessageCount;
这不再适用于带有 AMQP 1.0 的 .netCore
我找不到获取消息计数的好方法。关于我遗漏的任何想法?
有一个 Microsoft.Azure.Management.ServiceBus 库,它是 preview 版本,100% 兼容 .Netcore。我们可以在这里得到更多detail。
准备:
Registry Azure Active Directory application and assign Role
步骤:
创建一个.net core 控制台项目并添加以下代码。
var tenantId = "tenantid";
var context = new AuthenticationContext($"https://login.windows.net/{tenantId}");
var clientId = "Client";
var clientSecret = "Secret";
var subscriptionId = "subscriptionId";
var result = context.AcquireTokenAsync(
"https://management.core.windows.net/",
new ClientCredential(clientId, clientSecret)).Result;
var creds = new TokenCredentials(result.AccessToken);
var sbClient = new ServiceBusManagementClient(creds)
{
SubscriptionId = subscriptionId
};
var queueParams = new QueueCreateOrUpdateParameters()
{
Location = "East Asia",
EnablePartitioning = true
};
var queue = sbClient.Queues.ListAll("groupname", "namespace").ToList().FirstOrDefault(x => x.Name.Equals("queuename"));
var messagecount = queue.MessageCount;
从 Azure 门户,我们检查队列中的消息
Project.json 文件:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.Azure.Management.ServiceBus": "0.2.0-preview",
"Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.9",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
从队列中获取计数的旧方法是这样的:
CloudQueue q = queueClient.GetQueueReference(QUEUE_NAME);
q.FetchAttributes();
qCnt = q.ApproximateMessageCount;
这不再适用于带有 AMQP 1.0 的 .netCore
我找不到获取消息计数的好方法。关于我遗漏的任何想法?
有一个 Microsoft.Azure.Management.ServiceBus 库,它是 preview 版本,100% 兼容 .Netcore。我们可以在这里得到更多detail。
准备:
Registry Azure Active Directory application and assign Role
步骤:
创建一个.net core 控制台项目并添加以下代码。
var tenantId = "tenantid";
var context = new AuthenticationContext($"https://login.windows.net/{tenantId}");
var clientId = "Client";
var clientSecret = "Secret";
var subscriptionId = "subscriptionId";
var result = context.AcquireTokenAsync(
"https://management.core.windows.net/",
new ClientCredential(clientId, clientSecret)).Result;
var creds = new TokenCredentials(result.AccessToken);
var sbClient = new ServiceBusManagementClient(creds)
{
SubscriptionId = subscriptionId
};
var queueParams = new QueueCreateOrUpdateParameters()
{
Location = "East Asia",
EnablePartitioning = true
};
var queue = sbClient.Queues.ListAll("groupname", "namespace").ToList().FirstOrDefault(x => x.Name.Equals("queuename"));
var messagecount = queue.MessageCount;
从 Azure 门户,我们检查队列中的消息
Project.json 文件:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.Azure.Management.ServiceBus": "0.2.0-preview",
"Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.9",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}