|
28 | 28 | {requires, pre_boot},
|
29 | 29 | {enables, kernel_ready}]}).
|
30 | 30 |
|
| 31 | +-import(rabbit_misc, [pget/2]). |
| 32 | + |
31 | 33 | -export([enable/0]).
|
32 | 34 |
|
33 | 35 | -export([start/2, stop/1]).
|
|
43 | 45 | info/2, invoke/3, is_duplicate/2, set_queue_mode/2,
|
44 | 46 | zip_msgs_and_acks/4, handle_info/2]).
|
45 | 47 |
|
| 48 | +-export([max_priority/1, priorities/1]). |
| 49 | + |
46 | 50 | -record(state, {bq, bqss, max_priority}).
|
47 | 51 | -record(passthrough, {bq, bqs}).
|
48 | 52 |
|
@@ -125,9 +129,19 @@ collapse_recovery(QNames, DupNames, Recovery) ->
|
125 | 129 | end, dict:new(), lists:zip(DupNames, Recovery)),
|
126 | 130 | [dict:fetch(Name, NameToTerms) || Name <- QNames].
|
127 | 131 |
|
128 |
| -priorities(#amqqueue{arguments = Args}) -> |
129 |
| - Ints = [long, short, signedint, byte, unsignedbyte, unsignedshort, unsignedint], |
| 132 | +max_priority(Q = #amqqueue{arguments = Args}) -> |
130 | 133 | case rabbit_misc:table_lookup(Args, <<"x-max-priority">>) of
|
| 134 | + {Type, RequestedMax} -> {Type, RequestedMax}; |
| 135 | + undefined -> |
| 136 | + case rabbit_policy:effective_definition(Q) of |
| 137 | + undefined -> undefined; |
| 138 | + Proplist -> {unsignedbyte, pget(<<"max-priority">>, Proplist)} |
| 139 | + end |
| 140 | + end. |
| 141 | + |
| 142 | +priorities(Q) -> |
| 143 | + Ints = [long, short, signedint, byte, unsignedbyte, unsignedshort, unsignedint], |
| 144 | + case max_priority(Q) of |
131 | 145 | {Type, RequestedMax} ->
|
132 | 146 | case lists:member(Type, Ints) of
|
133 | 147 | false -> none;
|
|
0 commit comments