def message_handler(data, message): # Do something with the message data payload = data['payload'] revision_id = payload['revision'] tests_url = payload['testsurl'] date = datetime.datetime.fromtimestamp(payload['builddate']) try: rev = CodeRevision.objects.get(id=revision_id) log.info("Revision {} already exists".format(revision_id)) except mongoengine.DoesNotExist: rev = CodeRevision(id=revision_id, tests_url=tests_url, date=date) rev.save() log.info("Created a new revision: {}".format(revision_id)) # Ack the message to tell pulse we processed it message.ack()