Heroku上的Dash Python应用如何运行长耗时后台进程并展示进度
项目基本情况
- 基于Dash框架开发棒球模拟器应用,采用SGD模型模拟阵容与投手的对战过程,当前应用处于开发迭代阶段
- 已完成应用的线上部署,对应项目代码仓库已搭建完成
核心开发目标
- 在Heroku服务器上实现阵容优化器功能,需达成两个落地要求:
- 运行该计算密集型功能时,规避平台请求超时问题
- 向用户实时展示该功能的运行进度
当前遇到的开发阻塞问题
- 阵容优化器计算开销大,完整运行需要数分钟,无法在Heroku平台30秒的请求超时限制内完成。曾参照Heroku官方python-rq适配文档做调整:创建
worker.py、将功能逻辑迁移至独立py文件等,但进程仍因运行时间过长被强制终止 - 为实时获取功能运行状态,曾在功能代码中使用global变量,该方案本地运行时可正常工作,但部署到Heroku后无法生效。已知根因为多worker环境下不共享内存,原临时方案无法适配服务器运行环境,需要合理的替代方案实现功能运行进度的实时观测
- 自身Web应用开发经验有限,提前感谢各位给出可落地的实操建议
内容的提问来源于stack exchange,提问作者Claude Fried
相关产品推荐
相关产品推荐

