例如:
{myshovel, [
{sources, ...}
, {destinations, ...}
, {queue, <<>>}
, {ack_mode, on_confirm}
, {publish_properties, [
{delivery_mode, 2}
, {timestamp, now} % this is the line I need to understand how to write
]}
, {publish_fields, [{exchange, <<"">>}, {routing_key, <<"">>}]}
, {reconnect_delay, 5}
]}
我很好奇如何以某种方式编写publish_properties
,以便RabbitMQ Shovel用当前时间覆盖时间戳(就像铲子收到消息并且铲起一样)目的地队列。)
答案 0 :(得分:1)
不幸的是,在写作时不可能以这种方式配置铲子。当铲工人开始时,铲斗配置,包括转发消息的publish_properties
,并且只能包含静态内容。因此,您放入{publish_properties, [{timestamp, TimeStamp}]}
的任何值都将直接传递给erlang-client,然后转向将尝试序列化这些(使用amqp_ framing图层)。
我们目前正在计划对铲子插件进行一些改进(例如群集范围的故障转移和动态重新配置),并且您不是第一个要求此功能的人,因此我们将考虑是否有必要支持这里特定的东西(例如为每个已处理的消息设置新的时间戳)或配置铲工人的运行时行为的通用方法。