def app_main(self, config, options, args): db_url = db.create_url_from_config(config['db']) message_url = message_queue.create_url_from_config(config['amqp']['broker']) message_exchange = config['amqp']['exchange']['name'] maximum_priority = int(config['scanner']['maximum_priority']) iteration_minimum_duration = float(config['scanner']['iteration_minimum_duration']) iteration_minimum_duration = datetime.timedelta(seconds=iteration_minimum_duration) db.configure_session(db_url) message_client = message_queue.create_message_client(message_url) message_queue.create_queues_from_config(message_client, config['amqp']) message_queue.close_message_client(message_client) scanners = [] for priority in range(0, maximum_priority + 1): scanner = threading.Thread(target=scan_events, args=(message_url, message_exchange, priority, iteration_minimum_duration, maximum_priority)) scanner.start() scanners.append(scanner) for scanner in scanners: scanner.join()
def app_main(self, config, options, args): logging.info("Beginning...") # read the db url from the config db_url = db.create_url_from_config(config['db']) # get the broker and queue config broker_url = message_queue.create_url_from_config(config['amqp']['broker']) # get exchange information self.amqp_exchange = config['amqp']['exchange']['name'] # initialize the db engine & session db.configure_session(db_url) data_access.service.initialize() data_access.post_type.initialize() # get message broker client and store in instance -- used for both receiving and sending self.client = message_queue.create_message_client(broker_url) self.handlers = {} for service in _services_configuration(config): self.handlers[service['name']] = event_updater.from_service_name( service['name'], service['oauth']) logging.info('Queue broker URL: %s', broker_url) logging.debug('Active handlers: %s', self.handlers) message_queue.create_queues_from_config(self.client, config['amqp']) message_queue.join( self.client, config['amqp']['queues']['updater']['queue'], self.handler) logging.info("Finished...")
def app_main(self, config, options, args): logging.info("Beginning...") # read the db url from the config db_url = db.create_url_from_config(config['db']) # get the broker and queue config broker_url = message_queue.create_url_from_config(config['amqp']['broker']) # get the maximum priority max_priority = int(config['scanner']['maximum_priority']) min_duration = float(config['scanner']['iteration_minimum_duration']) min_duration = datetime.timedelta(seconds=min_duration) # initialize the db engine & session db.configure_session(db_url) service.initialize() post_type.initialize() # Create event processor self.processor = event_processor.EventProcessor( max_priority, min_duration, config['oauth']) logging.info('Queue broker URL: %s', broker_url) # get message broker client and store in instance -- used for both receiving and sending self.client = message_queue.create_message_client(broker_url) message_queue.create_queues_from_config(self.client, config['amqp']) message_queue.join( self.client, config['amqp']['queues']['processor']['queue'], self.handler) logging.info("Finished...")
def app_main(self, config, options, args): logging.info("Beginning...") # read the db url from the config db_url = db.create_url_from_config(config['db']) # initialize the db engine & session db.configure_session(db_url) # if services option is empty default to all available configured services if not options.services: service_names = [] # generate the list of service name's from queue list for key in config['queues'].iterkeys(): service_names.append(key) else: service_names = options.services # get the broker and queue config broker_url = message_queue.create_url_from_config(config['amqp']['broker']) # get message broker client and store in instance client = message_queue.create_message_client(broker_url) # for each specified service for service_name in service_names: # create the queue for this service message_queue.create_queues_from_config(client, config['amqp']) # post a notification for each author subscribed to this service for asm in db.Session().query(AuthorServiceMap). \ join(Service, AuthorServiceMap.service_id == Service.id). \ filter(Service.service_name == service_name).all(): message_queue.send_messages(client, [create_notification_message(service_name, asm.service_author_id)]) logging.info("Finished...")
def add_message_client(event): environment = event.request.registry.settings[config.ENVIRONMENT_KEY] url = message_queue.create_url_from_config(environment['amqp']['broker']) event.request.message_client = message_queue.get_current_message_client(url)
def create_feed_queue(event): environment = event.app.registry.settings[config.ENVIRONMENT_KEY] url = message_queue.create_url_from_config(environment['amqp']['broker']) client = message_queue.get_current_message_client(url) message_queue.create_queues_from_config(client, environment['amqp'])