- 之前项目在 windows 中部署,用的 apscheduler 做定时,初始化是放在 urls.py 中导入定时任务,任务中用到了 django 的 orm,不会出现数据库连接丢失情况
- 现在项目迁移到了 linux,使用 supervisor + gunicorn + django,因为定时任务初始化有用到 django,所以不能放在 urls.py 中导入定时任务,放到了 wsgi.py 中末行导入,定时任务第二天执行时会出现 django 的 ORM 数据库连接丢失,我在定时任务启动前用了 close_old_connections()方法手动刷新连接,可以解决。
问题:windows 中定时任务是在加载 wsgi.py 之前 导入的,linux 中是在 wsgi.py 加载之后导入的,但是理论上定时任务都是在 django 的会话中的,不应该会存在数据库丢失情况啊!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://study.congcong.us/t/632956
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.