Я пытаюсь использовать Advanced Python Scheduler для получения данных из моей базы данных MySql через sqlalchemy во флаконе раз в пять секунд.
Насколько мне известно, я хочу получать последние измененные данные из APScheduler черезНастроить SQLAlchemy, но после того, как я несколько раз изменил данные в базе данных MySql, я все еще получаю самые ранние данные в базе данных.
Кажется, что APScheduler просто запускает задание только один раз, и в следующие моментыпросто «запомни» и «скопируй», что сделано.Ниже приведены соответствующие настройки для APScheduler.
jobstores={"default":MemoryJobStore(),}
executors={"threadpool":ThreadPoolExecutor(max_workers=20)}
job_default={
'coalesce': True,
'max_instances': 1,
'replace_existing':True
}
scheduler=BackgroundScheduler(jobstores=jobstores,executors=executors,job_default=job_default)
def testJob():
test=Test.query.filter_by(id=2).first()
with open('test.log','a+') as f:
s=str(datetime.now())+' '+str(test)+'\n'
f.writelines([s])
tmpL=[CronTrigger(minute=m,second=s) for m in range(60) for s in range(0,60,5)]
tmpL.append(DateTrigger(run_date=datetime.now()))
trigger=OrTrigger(tmpL)
job=scheduler.add_job(testJob,trigger,id="testJob",replace_existing=True)
scheduler.start()
В моем тесте моя таблица сначала содержит данные "cat 4", затем я меняю их на "dog 3", "orange 7" и так далее.Я даже удаляю эту строку данных.Но я могу получать «Тест 2: cat-> 4» каждые пять секунд.
введите описание изображения здесь
Как я могу получить последние данные из APSchedulerчерез sqlalchemy?