Changeset View
Changeset View
Standalone View
Standalone View
swh/scheduler/cli.py
Show First 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | def cli(ctx, cls, database, url, log_level): | ||||
""" | """ | ||||
from swh.scheduler.celery_backend.config import setup_log_handler | from swh.scheduler.celery_backend.config import setup_log_handler | ||||
log_level = setup_log_handler( | log_level = setup_log_handler( | ||||
loglevel=log_level, colorize=False, | loglevel=log_level, colorize=False, | ||||
format='[%(levelname)s] %(name)s -- %(message)s') | format='[%(levelname)s] %(name)s -- %(message)s') | ||||
ctx.ensure_object(dict) | ctx.ensure_object(dict) | ||||
logger = logging.getLogger(__name__) | |||||
scheduler = None | scheduler = None | ||||
override_config = {} | override_config = {} | ||||
try: | try: | ||||
if cls == 'local' and database: | if cls == 'local' and database: | ||||
override_config = {'scheduling_db': database} | override_config = {'scheduling_db': database} | ||||
elif cls == 'remote' and url: | elif cls == 'remote' and url: | ||||
override_config = {'url': url} | override_config = {'url': url} | ||||
logger.debug('Instanciating scheduler %s with %s' % ( | |||||
vlorentz: ```
logger.debug('Instanciating scheduler %s with %s',
cls… | |||||
Not Done Inline Actionsnvm, I confused it with a different logging library. Python's logging is fine with it. vlorentz: nvm, I confused it with a different logging library. Python's `logging` is fine with it. | |||||
cls, override_config)) | |||||
scheduler = get_scheduler(cls, args=override_config) | scheduler = get_scheduler(cls, args=override_config) | ||||
except Exception: | except Exception: | ||||
# it's the subcommand to decide whether not having a proper | # it's the subcommand to decide whether not having a proper | ||||
# scheduler instance is a problem. | # scheduler instance is a problem. | ||||
pass | pass | ||||
ctx.obj['scheduler'] = scheduler | ctx.obj['scheduler'] = scheduler | ||||
ctx.obj['config'] = {'cls': cls, 'args': override_config} | ctx.obj['config'] = {'cls': cls, 'args': override_config} | ||||
▲ Show 20 Lines • Show All 360 Lines • ▼ Show 20 Lines | def runner(ctx, period): | ||||
This process is responsible for checking for ready-to-run tasks and | This process is responsible for checking for ready-to-run tasks and | ||||
schedule them.""" | schedule them.""" | ||||
from swh.scheduler.celery_backend.runner import run_ready_tasks | from swh.scheduler.celery_backend.runner import run_ready_tasks | ||||
from swh.scheduler.celery_backend.config import app | from swh.scheduler.celery_backend.config import app | ||||
logger = logging.getLogger(__name__ + '.runner') | logger = logging.getLogger(__name__ + '.runner') | ||||
scheduler = ctx.obj['scheduler'] | scheduler = ctx.obj['scheduler'] | ||||
logger.debug('Scheduler %s' % scheduler) | |||||
try: | try: | ||||
while True: | while True: | ||||
logger.info('Run ready tasks') | logger.info('Run ready tasks') | ||||
try: | try: | ||||
run_ready_tasks(scheduler, app) | run_ready_tasks(scheduler, app) | ||||
except Exception: | except Exception: | ||||
scheduler.rollback() | scheduler.rollback() | ||||
logger.exception('Unexpected error in run_ready_tasks()') | logger.exception('Unexpected error in run_ready_tasks()') | ||||
▲ Show 20 Lines • Show All 127 Lines • Show Last 20 Lines |
or it will crash if there is a %s in override_config