【问题标题】:How to consume an event after transaction is over using Quarkus Event Bus?事务结束后如何使用 Quarkus 事件总线消费事件?
【发布时间】:2022-07-16 17:28:05
【问题描述】:
【问题讨论】:
标签:
quarkus
vert.x
event-bus
【解决方案1】:
据我所知,目前没有这样的选择。或许我们可以稍微修改一下事件发送代码:
@Inject
private Mutiny.SessionFactory sessionFactory;
@Inject
private EventBus eventBus;
//@ReactiveTranactional
public Uni<Void> create(final Fruit fruit) {
return sessionFactory.withTransaction((session, tx) -> session.persist(fruit))
.invoke(() -> eventBus.send("test_topic", "some test message")));
}
@ConsumeEvent("test_topic")
public Uni<Void> listEntities(String testMessage) {
log.info("Printing all entities via: " + testMessage);
repository.findAll().stream().map(TestEntity::toString).forEach(log::info);
}