diff options
| author | mo khan <mo@mokhan.ca> | 2015-02-07 12:33:06 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2015-02-07 12:33:06 -0700 |
| commit | 65145e6be87df7b0440fb98c11abc23a2b3c49ed (patch) | |
| tree | 026e5260bf03be83d38d454028023316a555a1ea /lib/tasks | |
| parent | 2bbe4091b513ab40b0540a1315c8946ade21b476 (diff) | |
use a single topic exchange instead of multiple fanout exchanges.
Diffstat (limited to 'lib/tasks')
| -rw-r--r-- | lib/tasks/rabbitmq.rake | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/lib/tasks/rabbitmq.rake b/lib/tasks/rabbitmq.rake index 0fbe1c7..22b401c 100644 --- a/lib/tasks/rabbitmq.rake +++ b/lib/tasks/rabbitmq.rake @@ -6,20 +6,26 @@ namespace :rabbitmq do connection.start channel = connection.create_channel - # event intake bindings - exchange = channel.fanout("malwer.events") - queue = channel.queue("worker.events", durable: true) - queue.bind("malwer.events") + # single malwer topic exchange + # routing keys: + # * commands.command_type.(agent_id/fingerprint) + # * commands can be issued for specific agents + # * commands can be issued globally. (e.g. poke a dispostion) + # * events.event_type.agent_id - # poke bindings - exchange = channel.fanout("malwer.poke") - queue = channel.queue("worker.poke", durable: true) - queue.bind("malwer.poke") + channel.topic("malwer").tap do |exchange| + # event intake bindings + queue = channel.queue("worker.events", durable: true) + queue.bind(exchange, routing_key: "events.#") - # cloud queries bindings - exchange = channel.fanout("malwer.queries") - queue = channel.queue("worker.queries", durable: true) - queue.bind("malwer.queries") + # poke bindings + queue = channel.queue("worker.poke", durable: true) + queue.bind(exchange, routing_key: "commands.poke.#") + + # cloud queries bindings + queue = channel.queue("worker.queries", durable: true) + queue.bind(exchange, routing_key: 'events.scanned.#') + end connection.close end |
