Apscheduler Процесс BackgroundScheduler() не работает в фоновом режиме ⇐ Linux
Apscheduler Процесс BackgroundScheduler() не работает в фоновом режиме
Я работаю над проектом. Ниже приведены файлы, в которых возникла проблема.
cli.py
импортировать клик журнал импорта из qlog.utils импортировать ConfigLogRead из qlog.qlog импортировать QLogAgent из apscheduler.schedulers.background импорт BackgroundScheduler qlogagent = QLogAgent() планировщик = BackgroundScheduler (демон = True) configreader = ConfigLogRead() @click.command() @click.option('--interval', type=int, default=1, help='Интервал для планировщика в минутах') защита start_scheduler (интервал): """ Этот интерфейс реализует логику запуска планировщика""" # добавляем логику для запуска планировщика # и предоставить функцию QLogAgent.read_logs планировщику приложений Scheduler.add_job(qlogagent.read_and_push_logs, 'интервал', минуты = интервал) # и предоставить функцию QLogAgent.read_logs планировщику приложений планировщик.start() logging.info('Планировщик запущен') пытаться: # Оставьте скрипт работающим (используйте Ctrl+C, чтобы остановить его) пока правда: проходить кроме (KeyboardInterrupt, SystemExit): # Грамотное завершение работы планировщика при выходе из сценария планировщик.shutdown() logging.error("Планировщик закрыт корректно") @click.command() защита stop_scheduler(): если планировщик.работает: планировщик.shutdown() logging.info("Планировщик выключен") еще: logging.info("Планировщик не работает") @click.command() защита status_scheduler(): """ Этот интерфейс командной строки реализует логику состояния планировщика""" если планировщик.работает: logging.info("Планировщик работает.") еще: logging.warning("Планировщик не работает.") setup.py
""" Этот файл используется для упаковки исходного кода и интерфейса командной строки""" из настройки импорта setuptools настраивать( имя = 'qlog', версия = '0.1.0', py_modules=['qlog.cli'], install_requires=[ «Клик», «APScheduler», «дата и время», «configparser», «инструменты настройки» ], enter_points={ 'console_scripts': [ 'start=qlog.cli:start_scheduler', 'stop=qlog.cli:stop_scheduler', 'status=qlog.cli:status_scheduler', ], }, ) Я получаю результат:
когда я запускаю команду start на терминале, она не запускается в фоновом режиме. для выхода из скрипта нужно нажать ctl+C я использую виртуальную среду в Ubuntu.
Ожидаемый результат:
когда я даю команду запуска, она должна вернуть мне оболочку для ввода других команд и должна работать в фоновом режиме, пока не будет остановлена вручную.
$ начало $ Версия Python: Python 3.10.12
Платформа: #40~22.04.1-Ubuntu
Я работаю над проектом. Ниже приведены файлы, в которых возникла проблема.
cli.py
импортировать клик журнал импорта из qlog.utils импортировать ConfigLogRead из qlog.qlog импортировать QLogAgent из apscheduler.schedulers.background импорт BackgroundScheduler qlogagent = QLogAgent() планировщик = BackgroundScheduler (демон = True) configreader = ConfigLogRead() @click.command() @click.option('--interval', type=int, default=1, help='Интервал для планировщика в минутах') защита start_scheduler (интервал): """ Этот интерфейс реализует логику запуска планировщика""" # добавляем логику для запуска планировщика # и предоставить функцию QLogAgent.read_logs планировщику приложений Scheduler.add_job(qlogagent.read_and_push_logs, 'интервал', минуты = интервал) # и предоставить функцию QLogAgent.read_logs планировщику приложений планировщик.start() logging.info('Планировщик запущен') пытаться: # Оставьте скрипт работающим (используйте Ctrl+C, чтобы остановить его) пока правда: проходить кроме (KeyboardInterrupt, SystemExit): # Грамотное завершение работы планировщика при выходе из сценария планировщик.shutdown() logging.error("Планировщик закрыт корректно") @click.command() защита stop_scheduler(): если планировщик.работает: планировщик.shutdown() logging.info("Планировщик выключен") еще: logging.info("Планировщик не работает") @click.command() защита status_scheduler(): """ Этот интерфейс командной строки реализует логику состояния планировщика""" если планировщик.работает: logging.info("Планировщик работает.") еще: logging.warning("Планировщик не работает.") setup.py
""" Этот файл используется для упаковки исходного кода и интерфейса командной строки""" из настройки импорта setuptools настраивать( имя = 'qlog', версия = '0.1.0', py_modules=['qlog.cli'], install_requires=[ «Клик», «APScheduler», «дата и время», «configparser», «инструменты настройки» ], enter_points={ 'console_scripts': [ 'start=qlog.cli:start_scheduler', 'stop=qlog.cli:stop_scheduler', 'status=qlog.cli:status_scheduler', ], }, ) Я получаю результат:
когда я запускаю команду start на терминале, она не запускается в фоновом режиме. для выхода из скрипта нужно нажать ctl+C я использую виртуальную среду в Ubuntu.
Ожидаемый результат:
когда я даю команду запуска, она должна вернуть мне оболочку для ввода других команд и должна работать в фоновом режиме, пока не будет остановлена вручную.
$ начало $ Версия Python: Python 3.10.12
Платформа: #40~22.04.1-Ubuntu
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как запустить каждую пропущенную задачу Apscheduler при перезапуске процесса?
Anonymous » » в форуме Python - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как динамически планировать задачи, используя запросы на колбы (apscheduler)?
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-