in src/dispatch/cli.py [0:0]
def start_tasks(tasks, exclude, eager):
"""Starts the scheduler."""
import signal
from dispatch.common.utils.cli import install_plugins
from dispatch.scheduler import stop_scheduler
install_plugins()
if tasks:
for task in scheduler.registered_tasks:
if task["name"] not in tasks:
scheduler.remove(task)
if exclude:
for task in scheduler.registered_tasks:
if task["name"] in exclude:
scheduler.remove(task)
if eager:
for task in tasks:
for r_task in scheduler.registered_tasks:
if task == r_task["name"]:
click.secho(f"Eagerly running: {task}", fg="blue")
r_task["func"]()
break
else:
click.secho(f"A scheduled task/job named {task} does not exist", fg="red")
# registers a handler to stop future scheduling when encountering sigterm
signals = (signal.SIGHUP, signal.SIGTERM, signal.SIGINT)
for s in signals:
signal.signal(s, stop_scheduler)
click.secho("Starting scheduler...", fg="blue")
scheduler.start()