- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 Azure 服务总线代码:
private async Task startInternalAsync(CancellationToken cancellationToken) {
await using var client = new ServiceBusClient(_connectionString);
try {
var processor = client.CreateProcessor(_queueName, new ServiceBusProcessorOptions {
ReceiveMode = ServiceBusReceiveMode.ReceiveAndDelete,
PrefetchCount = 100
});
processor.ProcessMessageAsync += messageHandler;
processor.ProcessErrorAsync += errorHandler;
await processor.StartProcessingAsync(cancellationToken);
await cancellationToken.WhenCanceled();
_logger.LogDebug("Cancellation requested. Stopping the receiver...");
await processor.StopProcessingAsync();
_logger.LogDebug("Stopped receiving messages.");
}
catch (TaskCanceledException) {
_logger.LogDebug("Cancellation requested. Exiting.");
}
catch (Exception ex) {
_logger.LogError("Message processing exception. Exiting.", ex.Message);
}
}
private async Task messageHandler(ProcessMessageEventArgs args) {
string body = args.Message.Body.ToString();
_logger.LogDebug($"Received msg: {body}");
// complete the message. message is deleted from the queue.
await args.CompleteMessageAsync(args.Message);
}
private async Task errorHandler(ProcessErrorEventArgs args) {
await Task.Yield();
_logger.LogError(args.Exception.ToString());
}
我真的需要在 messageHandler
中调用 await args.CompleteMessageAsync(args.Message)
吗?我处于 ReceiveAndDelete 模式,因此在检索时应立即从 ASB 队列中删除消息,但仍需要 CompleteMessageAsync()
才能将其从本地队列中删除?或者我可以删除该调用吗?
最佳答案
您无需调用CompleteMessageAsync
,因为消息一旦发送就会自动删除。
事实上,我记得在 ReceiveAndDelete
模式下获取消息时,调用此方法实际上会引发错误。
关于c# - 当我处于 ReceiveAndDelete 模式时,是否需要调用 CompleteMessageAsync?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67333684/
我有一个.net core后台代理(托管服务) 它使用 Web 作业触发功能处理 Azure 服务总线消息 public async Task ProcessSyncResponseMessage(
我有一个.net core后台代理(托管服务) 它使用 Web 作业触发功能处理 Azure 服务总线消息 public async Task ProcessSyncResponseMessage(
我有以下 Azure 服务总线代码: private async Task startInternalAsync(CancellationToken cancellationToken) {
我有以下 Azure 服务总线代码: private async Task startInternalAsync(CancellationToken cancellationToken) {
我们在 Azure SB 中有许多主题,并通过 VIP 交换不断更新我们的环境,从暂存到生产。 当实例在暂存中运行时,我们不希望订阅者读取和删除旨在将事件发送到在生产槽中运行的实例的消息。 我提出的解
我们在 Azure SB 中有许多主题,并通过 VIP 交换不断更新我们的环境,从暂存到生产。 当实例在暂存中运行时,我们不希望订阅者读取和删除旨在将事件发送到在生产槽中运行的实例的消息。 我提出的解
我是一名优秀的程序员,十分优秀!