diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2012-04-11 16:03:54 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2012-04-11 16:03:54 +0100 |
| commit | 341edbc3f323d98911a7a202293ef88e3efe5d0d (patch) | |
| tree | 10dbd785d2526778ac79f5dd0029e04d6c465d88 | |
| parent | 55547d6ec850825c11bbde1f0af769d60e54139b (diff) | |
| parent | b14d6c21407c994c5bf46327d09962f1e1cecc17 (diff) | |
| download | rabbitmq-server-git-341edbc3f323d98911a7a202293ef88e3efe5d0d.tar.gz | |
Merge bug24862
| -rw-r--r-- | src/rabbit_exchange.erl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 83e28c44a8..0249155c83 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -242,6 +242,13 @@ info_all(VHostPath) -> map(VHostPath, fun (X) -> info(X) end). info_all(VHostPath, Items) -> map(VHostPath, fun (X) -> info(X, Items) end). +%% Optimisation +route(#exchange{name = #resource{name = <<"">>, virtual_host = VHost}}, + #delivery{message = #basic_message{routing_keys = RKs}}) -> + QNames = [rabbit_misc:r(VHost, queue, RK) || RK <- RKs], + lists:usort([QName || #amqqueue{name = QName} + <- rabbit_amqqueue:lookup(QNames)]); + route(X = #exchange{name = XName}, Delivery) -> route1(Delivery, {queue:from_list([X]), XName, []}). |
