Erlang 如何将RabbitMQ配置为使用当前时间覆盖timestamp属性?

Erlang 如何将RabbitMQ配置为使用当前时间覆盖timestamp属性?,erlang,rabbitmq,rabbitmq-shovel,Erlang,Rabbitmq,Rabbitmq Shovel,例如: {myshovel, [ {sources, ...} , {destinations, ...} , {queue, <<>>} , {ack_mode, on_confirm} , {publish_properties, [ {delivery_mode, 2} , {timestamp, now} % this is the line I need to understand how

例如:

{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}
]}
{myshovel[
{来源,…}
,{目的地,…}
,{queue,}
,{ack_mode,on_confirm}
,{发布属性[
{传送模式,2}
,{timestamp,now}%这是我需要了解如何编写的行
]}
,{publish_字段,[{exchange,},{routing_key,}]}
,{重新连接延迟,5}
]}

我很好奇如何编写
publish\u属性
,以便RabbitMQ铲用当前时间覆盖时间戳(就像铲收到消息并将其铲到目标队列中一样)。

不幸的是,在编写时无法以这种方式配置铲。电铲配置,包括转发消息的
publish\u属性
,在电铲工作人员启动时读取,并且只能包含静态内容。因此,无论您在
{publish_properties]中输入什么值,[{timestamp,timestamp}]}
都将直接传递给erlang客户机,而erlang客户机将尝试序列化这些值(使用amqp_框架层)


我们目前正在计划对铲式插件的一些改进(例如集群范围的故障转移和动态重新配置),而您不是第一个请求此特性的人,所以我们将考虑是否有意义地支持此处特定的内容(例如,为每个处理的消息设置新的时间戳)。或者是一种配置电铲工人运行时行为的通用方法。

非常有用,我想,但我想确定一下。目前,我正在WAN上使用铲子,我们试图锁定各点之间的延迟时间,并给出相应的度量。这将非常有用。