我使用 Eclipse 微配置文件发射器在 Quarkus 应用程序中创建了一个 ActiveMQ Artemis 生产者。但是消息会立即过期,并被移入ExpiryQueue
. 我不确定这种行为。请建议我如何将消息保留到队列中,以便它仅在指定时间后过期。
我正在使用下面的代码。
@Inject
@Channel("my-queue")
Emitter<String> emitter;
在元数据下创建:
String message = "my-message";
OutgoingAmqpMetadata metadata = OutgoingAmqpMetadata.builder()
.withExpiryTime(10000L)
.withDurable(true)
.withMessageId(String.valueOf(message.hashCode()))
.build();
emitter.send(Message.of(message, Metadata.of(metadata)));
我正在使用smallrye-amqp
连接器。在以下属性中添加application.properties
:
mp.messaging.outgoing.my-queue.connector=smallrye-amqp