每当将项目添加到 Azure 服务总线队列时调用 webapi
Call a webapi whenever an item is added to an Azure Service Bus queue
有没有办法在将消息添加到 Azure Servicebus 队列时调用 .netcore web api 方法?我想在没有任何基于定时器的轮询的情况下实现这一点。
我可以像这样手动调用 api 端点来处理队列:
[HttpGet]
public async Task<IActionResult> ProcessQue()
{
List<string> reList = new List<string>();
try
{
// Register a OnMessage callback
queueClient.RegisterMessageHandler(
async (message, token) =>
{
// Process the message
reList.Add($"Received message: SequenceNumber:{message.SequenceNumber} Body:{message.GetBody<string>()}");
// Complete the message so that it is not received again.
// This can be done only if the queueClient is opened in ReceiveMode.PeekLock mode.
await queueClient.CompleteAsync(message.LockToken);
},
new RegisterHandlerOptions() {MaxConcurrentCalls = 1, AutoComplete = false});
}
catch (Exception exception)
{
Console.WriteLine($"{DateTime.Now} > Exception: {exception.Message}");
}
return Ok(reList);
}
我正在寻找一种方法,当消息添加到队列时该方法会自动触发。 Azure 函数可能是执行此操作的正确方法,但我无法将 azure 函数连接到服务总线队列。
任何建议、忠告、口袋棉绒,任何东西都非常感谢。
您可以使用 Azure Functions 调用网络 api。您需要将 Azure 服务总线队列设置为绑定。您可以获得有关如何使用 Azure Functions Service Bus bindings on MSDN.
的更多信息
有没有办法在将消息添加到 Azure Servicebus 队列时调用 .netcore web api 方法?我想在没有任何基于定时器的轮询的情况下实现这一点。
我可以像这样手动调用 api 端点来处理队列:
[HttpGet]
public async Task<IActionResult> ProcessQue()
{
List<string> reList = new List<string>();
try
{
// Register a OnMessage callback
queueClient.RegisterMessageHandler(
async (message, token) =>
{
// Process the message
reList.Add($"Received message: SequenceNumber:{message.SequenceNumber} Body:{message.GetBody<string>()}");
// Complete the message so that it is not received again.
// This can be done only if the queueClient is opened in ReceiveMode.PeekLock mode.
await queueClient.CompleteAsync(message.LockToken);
},
new RegisterHandlerOptions() {MaxConcurrentCalls = 1, AutoComplete = false});
}
catch (Exception exception)
{
Console.WriteLine($"{DateTime.Now} > Exception: {exception.Message}");
}
return Ok(reList);
}
我正在寻找一种方法,当消息添加到队列时该方法会自动触发。 Azure 函数可能是执行此操作的正确方法,但我无法将 azure 函数连接到服务总线队列。
任何建议、忠告、口袋棉绒,任何东西都非常感谢。
您可以使用 Azure Functions 调用网络 api。您需要将 Azure 服务总线队列设置为绑定。您可以获得有关如何使用 Azure Functions Service Bus bindings on MSDN.
的更多信息