java - 服务总线主题触发的 Java Azure 函数是否支持 MessageReceiver?
问题描述
基本上是标题。这是我的代码
@FunctionName("Process")
public void run(@ServiceBusTopicTrigger(
name = "req",
topicName = TemplatedConstants.topicName,
subscriptionName = TemplatedConstants.subscriptionName,
connection = "ServiceBusConnectionString")
@BindingName("MessageReceiver") MessageReceiver messageReceiver, String message, final ExecutionContext context) {
我正在尝试将 MessageReceiver 注入 Java Azure 函数,但出现以下错误。
“com.microsoft.azure.servicebus.MessageReceiver”在“com.microsoft.azure.servicebus”中不公开。无法从外部包访问
我的目标是以“破坏性阅读”模式而不是默认的“窥视锁定”模式阅读消息。我希望在收到消息后立即调用 MessageReceiver 对象上的 .complete() 方法,以便在锁定持续时间结束后消息不会出现死信。
解决方案
不幸的是,Azure Functions 中的非 C# 语言不支持绑定到特定于复杂语言的类型。您必须在需要时直接使用 SDK。
但是您仍然可以属性值设置为in来实现“破坏性读取”(又名ReceiveAndDelete)。extensions.serviceBus.messageHandlerOptions.autoComplete
true
host.json
推荐阅读
- php - Laravel 资源 toArray() 无法正常工作
- cloudkit - 如何在系统设置页面更改 CloudKit displayName?
- c++ - 特化具有多个值和相同特化的非类型模板函数
- javascript - 按指定顺序对对象属性进行排序
- django - 如何在 django 中测试自定义身份验证后端
- typescript - 如何在不重写变量的情况下更改 TypeScript 中的变量类型?
- javascript - 使用 cronjob 运行脚本时缺少 Puppeteer
- javascript - 未捕获的 TypeError:response.json 不是 HTMLButtonElement 的函数
- symfony - 为什么 CORS 策略仅在我转储时才阻止请求?
- java - 想问用户画出多少步,打印出多少步。我该怎么做?