def create_queue_producer(): manager = TailManager( beaver_config=beaver_config, queue_consumer_function=create_queue_consumer, callback=queue_put, logger=logger ) manager.run()
def create_queue_producer(): manager = TailManager( beaver_config=self.beaver_config, queue_consumer_function=self.create_queue_consumer, callback=self.queue_put, logger=self.logger ) manager.run()
def create_queue_producer(): manager = TailManager( beaver_config=beaver_config, queue_consumer_function=create_queue_consumer, callback=queue_put, logger=logger ) inter_pass_interval = beaver_config.get('inter_pass_interval') manager.run(interval=inter_pass_interval)
def run(args=None): logger = setup_custom_logger('beaver', args) beaver_config = BeaverConfig(args, logger=logger) queue = multiprocessing.JoinableQueue(beaver_config.get('max_queue_size')) manager = None ssh_tunnel = create_ssh_tunnel(beaver_config, logger=logger) def queue_put(*args): return queue.put(*args) def queue_put_nowait(*args): return queue.put_nowait(*args) def cleanup(signalnum, frame): sig_name = tuple((v) for v, k in signal.__dict__.iteritems() if k == signalnum)[0] logger.info("{0} detected".format(sig_name)) logger.info("Shutting down. Please wait...") if manager is not None: logger.info("Closing worker...") try: manager.close() except RuntimeError: pass try: queue_put_nowait(("exit", ())) except Queue.Full: pass if ssh_tunnel is not None: logger.info("Closing ssh tunnel...") ssh_tunnel.close() logger.info("Shutdown complete.") return sys.exit(signalnum) signal.signal(signal.SIGTERM, cleanup) signal.signal(signal.SIGINT, cleanup) signal.signal(signal.SIGQUIT, cleanup) def create_queue_consumer(): process_args = (queue, beaver_config, logger) proc = multiprocessing.Process(target=run_queue, args=process_args) logger.info("Starting queue consumer") proc.start() return proc if REOPEN_FILES: logger.debug("Detected non-linux platform. Files will be reopened for tailing") logger.info("Starting worker...") manager = TailManager( beaver_config=beaver_config, queue_consumer_function=create_queue_consumer, callback=queue_put, logger=logger ) logger.info("Working...") manager.run()
def run(args=None): logger = setup_custom_logger('beaver', args) beaver_config = BeaverConfig(args, logger=logger) queue = multiprocessing.JoinableQueue(beaver_config.get('max_queue_size')) manager = None ssh_tunnel = create_ssh_tunnel(beaver_config, logger=logger) def queue_put(*args): return queue.put(*args) def queue_put_nowait(*args): return queue.put_nowait(*args) def cleanup(signalnum, frame): sig_name = tuple((v) for v, k in signal.__dict__.iteritems() if k == signalnum)[0] logger.info("{0} detected".format(sig_name)) logger.info("Shutting down. Please wait...") if manager is not None: logger.info("Closing worker...") try: manager.close() except RuntimeError: pass try: queue_put_nowait(("exit", ())) except Queue.Full: pass if ssh_tunnel is not None: logger.info("Closing ssh tunnel...") ssh_tunnel.close() logger.info("Shutdown complete.") return sys.exit(signalnum) signal.signal(signal.SIGTERM, cleanup) signal.signal(signal.SIGINT, cleanup) signal.signal(signal.SIGQUIT, cleanup) def create_queue_consumer(): process_args = (queue, beaver_config, logger) proc = multiprocessing.Process(target=run_queue, args=process_args) logger.info("Starting queue consumer") proc.start() return proc if REOPEN_FILES: logger.debug("Detected non-linux platform. Files will be reopened for tailing") logger.info("Starting worker...") manager = TailManager( paths=["/var/log/system.log"], beaver_config=beaver_config, queue_consumer_function=create_queue_consumer, callback=queue_put, logger=logger ) logger.info("Working...") manager.run()