def run_monitor(loglevel=conf.CELERYMON_LOG_LEVEL, logfile=conf.CELERYMON_LOG_FILE, http_port=8989, **kwargs): """Starts the celery monitor.""" print("celerymon %s is starting." % celery.__version__) # Setup logging if not isinstance(loglevel, int): loglevel = conf.LOG_LEVELS[loglevel.upper()] # Dump configuration to screen so we have some basic information # when users sends e-mails. print(STARTUP_INFO_FMT % { "http_port": http_port, "conninfo": info.format_broker_info(), }) from celery.log import setup_logger, redirect_stdouts_to_logger print("celerymon has started.") arg_start = "manage" in sys.argv[0] and 2 or 1 platform.set_process_title("celerymon", info=" ".join(sys.argv[arg_start:])) def _run_monitor(): logger = setup_logger(loglevel, logfile) monitor = MonitorService(logger=logger, http_port=http_port) try: monitor.start() except Exception, e: emergency_error(logfile, "celerymon raised exception %s: %s\n%s" % ( e.__class__, e, traceback.format_exc())) while(True): pass
def run_clockservice(detach=False, loglevel=conf.CELERYBEAT_LOG_LEVEL, logfile=conf.CELERYBEAT_LOG_FILE, pidfile=conf.CELERYBEAT_PID_FILE, umask=0, uid=None, gid=None, working_directory=None, chroot=None, schedule=conf.CELERYBEAT_SCHEDULE_FILENAME, **kwargs): """Starts the celerybeat clock server.""" print("celerybeat %s is starting." % __version__) # Setup logging if not isinstance(loglevel, int): loglevel = conf.LOG_LEVELS[loglevel.upper()] if not detach: logfile = None # log to stderr when not running in the background. # Dump configuration to screen so we have some basic information # when users sends e-mails. print(STARTUP_INFO_FMT % { "conninfo": get_connection_info(), "exchange": conf.AMQP_EXCHANGE, "exchange_type": conf.AMQP_EXCHANGE_TYPE, "consumer_queue": conf.AMQP_CONSUMER_QUEUE, "consumer_rkey": conf.AMQP_CONSUMER_ROUTING_KEY, "publisher_rkey": conf.AMQP_PUBLISHER_ROUTING_KEY, "loglevel": loglevel, "pidfile": pidfile, "schedule": schedule, }) print("celerybeat has started.") arg_start = "manage" in sys.argv[0] and 2 or 1 platform.set_process_title("celerybeat", info=" ".join(sys.argv[arg_start:])) from celery.log import setup_logger, redirect_stdouts_to_logger on_stop = noop if detach: context, on_stop = platform.create_daemon_context(logfile, pidfile, chroot_directory=chroot, working_directory=working_directory, umask=umask) context.open() logger = setup_logger(loglevel, logfile) redirect_stdouts_to_logger(logger, loglevel) platform.set_effective_user(uid, gid) # Run the worker init handler. # (Usually imports task modules and such.) current_loader.on_worker_init() def _run_clock(): logger = setup_logger(loglevel, logfile) clockservice = ClockService(logger=logger, is_detached=detach, schedule_filename=schedule) try: clockservice.start() except Exception, e: emergency_error(logfile, "celerybeat raised exception %s: %s\n%s" % ( e.__class__, e, traceback.format_exc()))
def run_clockservice(loglevel=conf.CELERYBEAT_LOG_LEVEL, logfile=conf.CELERYBEAT_LOG_FILE, schedule=conf.CELERYBEAT_SCHEDULE_FILENAME, **kwargs): """Starts the celerybeat clock server.""" print("celerybeat %s is starting." % celery.__version__) # Setup logging if not isinstance(loglevel, int): loglevel = conf.LOG_LEVELS[loglevel.upper()] # Run the worker init handler. # (Usually imports task modules and such.) from celery.loaders import current_loader current_loader().init_worker() # Dump configuration to screen so we have some basic information # when users sends e-mails. print(STARTUP_INFO_FMT % { "conninfo": info.format_broker_info(), "logfile": logfile or "@stderr", "loglevel": conf.LOG_LEVELS[loglevel], "schedule": schedule, }) print("celerybeat has started.") arg_start = "manage" in sys.argv[0] and 2 or 1 platform.set_process_title("celerybeat", info=" ".join(sys.argv[arg_start:])) def _run_clock(): from celery.log import setup_logger logger = setup_logger(loglevel, logfile) clockservice = ClockService(logger=logger, schedule_filename=schedule) try: install_sync_handler(clockservice) clockservice.start() except Exception, e: emergency_error(logfile, "celerybeat raised exception %s: %s\n%s" % ( e.__class__, e, traceback.format_exc()))
def start(self, embedded_process=False): self.logger.info("Celerybeat: Starting...") self.logger.debug("Celerybeat: " "Ticking with max interval->%s" % ( humanize_seconds(self.scheduler.max_interval))) if embedded_process: platform.set_process_title("celerybeat") try: try: while not self._shutdown.isSet(): interval = self.scheduler.tick() self.debug("Celerybeat: Waking up %s." % ( humanize_seconds(interval, prefix="in "))) time.sleep(interval) except (KeyboardInterrupt, SystemExit): self._shutdown.set() finally: self.sync()
def set_process_title(self): arg_start = "manage" in sys.argv[0] and 2 or 1 platform.set_process_title("celerybeat", info=" ".join(sys.argv[arg_start:]))