diff options
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index ed15b6f5fd..892c2a7765 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -901,13 +901,8 @@ make_dead_letter_msg(Msg = #basic_message{content = Content, MaybePerMsgTTL = case Reason of expired -> - OrigProps = Content#content.properties, - case rabbit_basic:parse_expiration(OrigProps) of - {ok, Exp} when is_integer(Exp) -> - [{<<"original-expiration">>, longstr, - integer_to_list(Exp)}]; - _ -> [] - end; + OriginalProps = Content#content.properties, + maybe_create_per_msg_ttl_xdeath_header(OriginalProps); _ -> [] end, HeadersFun2 = @@ -932,6 +927,17 @@ make_dead_letter_msg(Msg = #basic_message{content = Content, routing_keys = DeathRoutingKeys, content = ContentNoExpiration}. +maybe_create_per_msg_ttl_xdeath_header(#'P_basic'{}=Props) -> + case rabbit_basic:parse_expiration(Props) of + {ok, Exp} when is_integer(Exp) -> + [{<<"original-expiration">>, longstr, + integer_to_list(Exp)}]; + _ -> + [] + end; +maybe_create_per_msg_ttl_xdeath_header(_) -> + []. + now_micros() -> timer:now_diff(now(), {0,0,0}). infos(Items, State) -> [{Item, i(Item, State)} || Item <- Items]. |
