diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 90e58f25d7..ffff464dc8 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -579,9 +579,13 @@ deliver_or_enqueue(Delivery = #delivery{message = Message}, {false, State2 = #q{ttl = 0, dlx = undefined}} -> discard(Delivery, State2); {false, State2} -> - BQS1 = publish_max(Delivery, Props, Delivered, State2), - ensure_ttl_timer(Props#message_properties.expiry, - State2#q{backing_queue_state = BQS1}) + case publish_max(Delivery, Props, Delivered, State2) of + nopub -> + State2; + BQS1 -> + ensure_ttl_timer(Props#message_properties.expiry, + State2#q{backing_queue_state = BQS1}) + end end. publish_max(#delivery{message = Message, @@ -612,7 +616,7 @@ publish_max(#delivery{message = Message, true -> rabbit_misc:confirm_to_sender(SenderPid, [MsgSeqNo]); false -> ok end, - BQS; + nopub; {true, false} -> {{Msg, _IsDelivered, AckTag}, BQS1} = BQ:fetch(true, BQS), (dead_letter_fun(maxdepth))([{Msg, AckTag}]), |
