为了账号安全,请及时绑定邮箱和手机立即绑定

对象不包含数据,但仅当与 uWSGI FLASK 应用程序中的 apscheduler 一起使用时

对象不包含数据,但仅当与 uWSGI FLASK 应用程序中的 apscheduler 一起使用时

慕村9548890 2024-01-24 21:00:04
你好,我已经构建了一个 Flask 网站,并使用 uWSGI 进行了部署。除了使用 apscheduler 运行的数据库更新代码之外,一切似乎都按预期工作。我有一个对象,它本质上包含一些数据字典,我想使用 apscheduler 每小时更新一次。当我尝试正常访问该对象时,一切都按预期进行。但是,当我尝试将对象与 apschedulerBackgroundScheduler 一起使用时,该对象不包含任何数据,即使它位于同一内存位置!当在烧瓶页面中执行时,它会产生:hex id of object:  0x7f58a5e88a60hex id of object.prices:  0x7f58a5e88ac0hex id of object.prices._content_dict:  0x7f58ab0a8180_content_dict:  {625: (12925714.285714285, 9044000.0), 34: (8.528115645081806, 8.0), 35: (13.499491140271743, 35.0), 36: (109.86576894948205, 113.1), 37: (37.98743083746043, 42.64), 38: (1311.6629430032253, 1225.0), 39: (1347.7675049393822, 1354.0), 40: (808.3051410710929, 787.0)}type:  <class 'app.EVE_interfaces.EVE_ESI_interface.ESI_data_obj'>prices length:  8然而,当由 apscheduler 作业调用时,它会给出:hex id of object:  0x7f58a5e88a60hex id of object.prices:  0x7f58a5e88ac0hex id of object.prices._content_dict:  0x7f58ab0a8180_content_dict:  {}type:  <class 'app.EVE_interfaces.EVE_ESI_interface.ESI_data_obj'>prices length:  0这里对象的内存位置与以前相同!但是当调度程序调用时_content_dict 包含一个空字典?(数据不会被删除,因为当我之后再次正常调用它时它仍然存在。)当我使用 Flask 的内置开发服务器时,apscheduler 更新功能工作正常,但不适用于 uWSGI。apscheduler 配置如下:# run update once at the startupdate()# set up scheduler to repeatedly update ESI datascheduler = BackgroundScheduler()scheduler.add_job(func=update, trigger='interval', minutes=_ESI_update_interval)scheduler.start()# Shut down the scheduler when exiting the appatexit.register(lambda: scheduler.shutdown())我的uWSGI.ini如下:[uwsgi]module = main:flask_appmaster = trueprocesses = 1 enable-threads = truesingle-interpreter = truesocket = web_app.sockchmod-socket = 660vacuum = truedie-on-term = truelogto = /home/mainuser/web_app/uwsgi_logs/%n.log有人可以解释为什么当使用 apscheduler 调用数据时,数据不存在吗?即使对象内存位置相同?或者我应该如何运行每小时数据库更新功能?
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

我还不确定为什么,但补充一下:

lazy-apps = true

到uWSGI.ini文件,修复了问题


查看完整回答
反对 回复 2024-01-24
  • 1 回答
  • 0 关注
  • 32 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信