Добавление задания через add_job () из отдельного модуля не дает результатов - PullRequest
0 голосов
/ 09 апреля 2020

Я новичок в apscheduler и свободно признаю, что, возможно, я упустил что-то каждое элементарное в том, как его использовать, поэтому я заранее извиняюсь, если это кажется глупым вопросом.

Я настроил очень простой c schedule_zones.py как мое "основное" приложение планировщика, которое будет работать непрерывно, ожидая (или я так думал) других модулей в моей программе для создания рабочих мест, ничем и никогда случается.

import system_info
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor

jobstores = {
    'default': SQLAlchemyJobStore(url=system_info.sqlalchemy_apscheduler)
}
executors = {
    'default': ThreadPoolExecutor(20),
    'processpool': ProcessPoolExecutor(5)
}

scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors)
scheduler.configure(timezone='America/Phoenix')

zone1 = ZoneController('zone1')

def add_zone_job(zone, job_id):
    scheduler.add_job(neptune.check_scheduler, 'date', run_date='2020-04-09 00:31:00', args=[zone], id=job_id)

if __name__ == '__main__':
    scheduler.start()
  #  add_zone_job(zone1,'zone1-000001')   <----- If I uncomment, this works beautifully....
    try:
        while True:
            sleep(5)
    except (KeyboardInterrupt, SystemExit):
        scheduler.shutdown()

Это (для меня) довольно прямолинейно. У меня есть другой модуль (add_jpb.py), который получает новое расписание и вызывает эту функцию:

import schedule_zones

zone1 = ''
schedule_zones.add_zone_job(zone1, 'zone1T_00002')

Когда я раскомментирую ту же самую строку под main () в schedule_zones.py, он работает и выполняется точно так же, как ожидается. Когда я запускаю (в данном случае add_job.py), он выдает следующее:

INFO:apscheduler.scheduler:Adding job tentatively -- it will be properly scheduled when the scheduler starts

Это говорит о том, что я упускаю что-то важное о том, как составлять расписание этих заданий. Ничего не появляется в базе данных, когда я запускаю add_job.py, но если я раскомментирую add_job_zone () под main () в моем schedule_zones.py, то даже мгновенно появится в моей базе данных MySQL и вызовет мою функцию neptune.check_scheduler точно так же, как хотел.

Так что я думаю, мой вопрос прост: как из других модулей и функций я могу добавить события в мой работающий планировщик?

Спасибо!

...