33 lines
949 B
Python
33 lines
949 B
Python
from __future__ import absolute_import
|
|
|
|
import logging
|
|
import atexit
|
|
import sys
|
|
|
|
from navigation.api import bind_links
|
|
|
|
from .links import scheduler_tool_link, scheduler_list, job_list
|
|
from .literals import SHUTDOWN_COMMANDS
|
|
from .api import LocalScheduler
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def schedule_shutdown_on_exit():
|
|
logger.debug('Schedulers shut down on exit')
|
|
LocalScheduler.shutdown_all()
|
|
LocalScheduler.clear_all()
|
|
|
|
|
|
if any([command in sys.argv for command in SHUTDOWN_COMMANDS]):
|
|
logger.debug('Schedulers shut down on SHUTDOWN_COMMAND')
|
|
# Shutdown any scheduler already running
|
|
LocalScheduler.shutdown_all()
|
|
LocalScheduler.clear_all()
|
|
# Prevent any new scheduler afterwards to start
|
|
LocalScheduler.lockdown()
|
|
|
|
atexit.register(schedule_shutdown_on_exit)
|
|
bind_links([LocalScheduler, 'scheduler_list', 'job_list'], scheduler_list, menu_name='secondary_menu')
|
|
bind_links([LocalScheduler], job_list)
|