def setup(self, redis=None, message_sender=None): if redis is None: redis = yield TxRedisManager.from_config(self.redis_config) if message_sender is None: message_sender = MessageSender('amqp-spec-0-8.xml', self.amqp_config) self.redis = redis self.message_sender = message_sender self.message_sender.setServiceParent(self.service) self.inbounds = InboundMessageStore(self.redis, self.config.inbound_message_ttl) self.outbounds = OutboundMessageStore(self.redis, self.config.outbound_message_ttl) self.message_rate = MessageRateStore(self.redis) self.plugins = [] for plugin_config in self.config.plugins: cls = load_class_by_string(plugin_config['type']) plugin = cls() yield plugin.start_plugin(plugin_config, self.config) self.plugins.append(plugin) yield Channel.start_all_channels(self.redis, self.config, self.service, self.plugins)
def setup_application(self): self.redis = yield TxRedisManager.from_config( self.config['redis_manager']) self.inbounds = InboundMessageStore(self.redis, self.config['inbound_ttl']) self.outbounds = OutboundMessageStore(self.redis, self.config['outbound_ttl']) self.message_rate = MessageRateStore(self.redis) if self.config.get('message_queue') is not None: self.ro_connector = yield self.setup_ro_connector( self.config['message_queue']) self.ro_connector.set_outbound_handler(self._publish_message)
def __init__(self, redis_manager, config, properties, plugins=[], id=None): '''Creates a new channel. ``redis_manager`` is the redis manager, from which a sub manager is created using the channel id. If the channel id is not supplied, a UUID one is generated. Call ``save`` to save the channel data. It can be started using the ``start`` function.''' self._properties = properties self.redis = redis_manager self.id = id self.config = config if self.id is None: self.id = str(uuid.uuid4()) self.options = deepcopy(VumiOptions.default_vumi_options) self.options.update(self.config.amqp) self.transport_worker = None self.application_worker = None self.status_application_worker = None self.sstore = StatusStore(self.redis) self.plugins = plugins self.message_rates = MessageRateStore(self.redis)
def create_store(self, **kw): ''' Creates and returns a new message rate store. ''' redis = yield self.get_redis() returnValue(MessageRateStore(redis, **kw))