Skip to content
Snippets Groups Projects
atlurie's avatar
Eesaan Atluri authored
This change will support our design decision that a user should be only
part of a group that corresponds to his current state. Users are not in
two states at any given time, they have only one state. Likewise, they
should only be in one group at a time corresponding to their state (look
at rabbit_config.py)
7e740f27

rabbitmq_agents

This repo keeps different rabbitmq agents that help in account creation on OHPC system.

It has 2 branches develop and production , that houses agents based on where they are launched

Using RCRMQ class

  • First, rename rabbit_config.py.example to rabbit_config.py

  • Modify config file, at least the Password needs to be your own passwod

  • In your code:

# import the class
from rc_rmq import RCRMQ

# instantiate an instance
rc_rmq = RCRMQ({'exchange': 'RegUsr'})

# publish a message to message queue
rc_rmq.publish_msg({
  'routing_key': 'your_key',
  'msg': {
    'type': 'warning',
    'content': 'this is warning'
  }
})

# to consume message from a queue
# you have to first define callback function
# with parameters: channel, method, properties, body
def callback_function(ch, method, properties, body):
  msg = json.loads(body)
  print("get msg: {}".format(msg['username')

  # this will stop the consumer
  rc_rmq.stop_consumer()

# start consume messagre from queue with callback function
rc_rmq.start_consume({
  'queue': 'queue_name',
  'routing_key: 'your_key',
  'cb': callback_function
})

# don't forget to close connection
rc_rmq.disconnect()