def queue_daemon(self, rv_ttl=500): """ The daemon that listens for incoming orders. Must be run in a separate process. All received orders are stored in the database """ while True: logger.debug('Waiting for orders...') order_form_data = self.redis.blpop(prefixed(self.uuid)) order_form_data = loads(order_form_data[1]) new_order = Order(**order_form_data) self.store_order(new_order) try: response = self.process_order(new_order) logger.debug('Finished processing order.') except Exception, e: logger.exception(e) response = e
def queue_order(redis, auction_id, order_data): logger.debug('Received order: %s'%order_data) order_data['received'] = datetime.utcnow() redis.rpush(prefixed(auction_id), cPickle.dumps(order_data))