diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2013-10-14 18:59:49 +0100 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2013-10-14 18:59:49 +0100 |
| commit | 70dacbf8ba9d2289d9d053c5b42911bf35a39ee9 (patch) | |
| tree | 8d4fb34318ed186bc0143a3e888f2fa0efefa3d1 /src | |
| parent | 1fef1a3cd8433dd91c43bb98f51302b3262c0b0e (diff) | |
| download | rabbitmq-server-git-70dacbf8ba9d2289d9d053c5b42911bf35a39ee9.tar.gz | |
Always check message expiry when queues start
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index add75d8991..1baef6d8da 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -239,22 +239,23 @@ recovery_barrier(BarrierPid) -> end. process_args(State = #q{q = #amqqueue{arguments = Arguments}}) -> - lists:foldl( - fun({Arg, Fun}, State1) -> - case rabbit_misc:table_lookup(Arguments, Arg) of - {_Type, Val} -> Fun(Val, State1); - undefined -> State1 - end - end, State, - [{<<"x-expires">>, fun init_expires/2}, - {<<"x-dead-letter-exchange">>, fun init_dlx/2}, - {<<"x-dead-letter-routing-key">>, fun init_dlx_routing_key/2}, - {<<"x-message-ttl">>, fun init_ttl/2}, - {<<"x-max-length">>, fun init_max_length/2}]). + drop_expired_msgs( + lists:foldl( + fun({Arg, Fun}, State1) -> + case rabbit_misc:table_lookup(Arguments, Arg) of + {_Type, Val} -> Fun(Val, State1); + undefined -> State1 + end + end, State, + [{<<"x-expires">>, fun init_expires/2}, + {<<"x-dead-letter-exchange">>, fun init_dlx/2}, + {<<"x-dead-letter-routing-key">>, fun init_dlx_routing_key/2}, + {<<"x-message-ttl">>, fun init_ttl/2}, + {<<"x-max-length">>, fun init_max_length/2}])). init_expires(Expires, State) -> ensure_expiry_timer(State#q{expires = Expires}). -init_ttl(TTL, State) -> drop_expired_msgs(State#q{ttl = TTL}). +init_ttl(TTL, State) -> State#q{ttl = TTL}. init_dlx(DLX, State = #q{q = #amqqueue{name = QName}}) -> State#q{dlx = rabbit_misc:r(QName, exchange, DLX)}. |
