我向一个Verticle发送消息,而这个Verticle又可能需要将它转发给其他Verticle。我不想编写冗余代码来复制邮件中的标题,并创建另一个邮件对象并传递它。有没有办法在vert.x中转发消息,deliveryOptions完好无损?
答案 0 :(得分:0)
使用DeliveryOptions,您可以在Verticles之间传输消息。
请考虑以下示例:
// MainVerticle将接收数据,我们将发送到MessagingVerticle
select *
from t
where (col1, col2) in (
select (a,b)
from (
select unnest(array['a','b','c']), unnest(array[1,2,3])
) s (a,b)
)
//将这些消息发送到MessagingVerticle
SELECT q.Continent as continent, SUM(IF(q.qntStadiuns > 2, 1, 0))/COUNT(*) * 100 as percent
FROM
(SELECT Continent, Country, COUNT(*) as qntStadiuns
FROM tableName
WHERE Stadium = true
GROUP BY Continent, Country) AS q
GROUP BY continent
我希望这会对你有所帮助:)
答案 1 :(得分:0)
你想要的并不是完全可能的,但如果你只对标题感兴趣,那么转发是非常简单的。您可以在一个方法调用中设置标头。但是,您无法通过将整个消息对象传递给send方法来转发它。
这适合我。
vertx.eventBus().send("forwardingAddress",
message.body(),new DeliveryOptions()
.setHeaders(message.headers()));