python - Heroku Django APScheduler 在作业完成后不释放内存
问题描述
我有一个 django 站点,它正在运行一些由 Heroku 上托管的 APScheduler 安排的繁重计算内容。一切都按预期工作,但是 Heroku 抛出错误“错误 R14(超出内存配额)”我发现了与此类似的其他帖子,链接,问题,但它们已过时,我无法让它们工作。我的代码在下面列出。我希望它在周一至周五的 800 到 1600 小时之间运行。我正在使用 heroku 的 PostgreSQL 数据库。最终内存使用量会变得如此之高,以至于崩溃并重新启动。
sched = BlockingScheduler(
executors={
'threadpool': ThreadPoolExecutor(max_workers=1),
'processpool': ProcessPoolExecutor(max_workers=1)
}
)
@sched.scheduled_job('cron', minute='*/30', day_of_week='mon-fri', hour='8-18', max_instances=1, id="server",
executor='threadpool')
def _server():
print('Start server')
server = Server()
server.get_stocks()
del server
gc.collect()
sched.start()
我知道这是内存泄漏,因为在服务器启动之前clock.py 内存使用情况。
如果有人能指出我正确的方向,我愿意尝试任何事情。提前谢谢你。
解决方案
推荐阅读
- python - 在 Jupyter Notebook 中运行 FEniCS
- java - 如何在具有扩展另一个接口的接口的实现上设置限定符
- dji-sdk - 运行示例 OSDK 应用程序的正确方法是什么?
- visual-studio - 获取 currentSelectedGameObject 不会停止射击
- python-3.x - 如何使用 psycopg2 恢复数据库转储
- css - Laravel+Vue 聊天室逻辑与设计
- node.js - Node Js Async Await 给出第一个响应 Empty
- python - Python“yaml”模块将意外的 YAML 从 JSON 格式转换
- ios - NativeScript 错误:安装失败:无法将应用程序传输到设备
- linux - 如何在 --function 中添加参数