APScheduler值与数据库中的值不同

问题描述 投票:0回答:1

我在MongoDB上与Flask应用程序一起运行APScheduler。目标是每隔30分钟运行一次函数,所以我这样运行任务:

scheduler_init.add_job(check_for_expire, 'date', run_date=date_activate_until, args=[event],
misfire_grace_time=900)

其中“事件”是mongoengine对象。

问题是,当它在指定的时间内运行时,“ event”的值与数据库中的实际值不同(我使用调试器来确保是这样)而且,如果我有两个不同的工作,则两个函数和数据库中的值都将不同(它们可以完全不同)]

flask mongoengine apscheduler
1个回答
0
投票

因此,当您执行add_job时,参数是通过值而不是通过引用传递给函数的。因此它复制了“事件”对象创建作业时,因此我得到的是旧值

所以现在在函数中,我向数据库运行查询以获取新值:

Event.objects.filter(id = event.id).first()

并确保尚未删除您的对象

© www.soinside.com 2019 - 2024. All rights reserved.