rabbitmq/CommissionMessageProcessor.py (19 lines of code) (raw):
import logging
from .MessageProcessor import MessageProcessor
from .serializers import CachedCommissionSerializer
from .models import CachedCommission
logger = logging.getLogger(__name__)
class CommissionMessageProcessor(MessageProcessor):
serializer = CachedCommissionSerializer
routing_key = "core.commission.*"
def valid_message_receive(self, exchange_name, routing_key, delivery_tag, body):
logger.info("CommissionMessageProcessor got {0}".format(body))
commission = CachedCommission(**body)
if "create" in routing_key or "update" in routing_key:
logger.info("Caching update commission '{0}' to database".format(commission.title))
commission.save()
elif "delete" in routing_key: #check if this is the right key name
logger.info("Removing deleted commission '{0}' from database".format(commission.title))
commission.delete()
else:
logger.error("Unrecognised routing key: {0}".format(routing_key))