def amqp_subscribe(topic): """ Return a javascript callback that subscribes to a given topic, or a list of topics. """ sub = """ moksha.debug("Subscribing to the '%(topic)s' topic"); var receiver = moksha_amqp_session.receiver('amq.topic/%(topic)s') receiver.onReady = raw_msg_callback; receiver.capacity(0xFFFFFFFF); """ return ''.join([sub % {'topic': t} for t in listify(topic)])
def __init__(self, hub): self.hub = hub self.log = log callback = self._consume if self.jsonify: callback = self._consume_json for topic in listify(self.topic): log.debug('Subscribing to consumer topic %s' % topic) self.hub.subscribe(topic, callback) # If the consumer specifies an 'app', then setup `self.engine` to # be a SQLAlchemy engine, along with a configured DBSession app = getattr(self, 'app', None) self.engine = self.DBSession = None if app: log.debug("Setting up individual engine for consumer") from sqlalchemy.orm import sessionmaker self.engine = create_app_engine(app, hub.config) self.DBSession = sessionmaker(bind=self.engine)() self._initialized = True
def websocket_subscribe(topic): """ Return a javascript callback that subscribes to a given topic, or a list of topics. """ sub = "moksha.topic_subscribe('%(topic)s');" return ''.join([sub % {'topic': t} for t in listify(topic)])