【发布时间】:2021-01-26 22:14:23
【问题描述】:
我正在使用 Dash 开发一个棒球模拟器应用。它使用 SGD 模型来模拟阵容和投手之间的游戏玩法。该应用程序(正在建设中)可以在这里找到:https://capstone-baseball-simulator.herokuapp.com/ 和 repo:https://github.com/c-fried/capstone_heroku
总结问题:我希望能够在heroku服务器上运行阵容优化器。
这可能有两个部分: 1. 运行实际函数同时避免超时。 & 2. 显示函数运行的进度。
我在解决这个问题时遇到了几个问题:
- 该功能代价高昂,无法在 30 秒超时之前完成。 (需要几分钟才能完成。)
为此,我尝试按照这些说明 (https://devcenter.heroku.com/articles/python-rq) 创建一个 worker.py(仍在 repo 中),将函数移动到外部 .py...等。我认为的问题是该过程仍然花费了太长时间,因此终止了。
- 我(有意)在函数中使用了
global变量,该变量在我本地运行时有效,但在部署时无效(出于我有点理解的原因 - 工作人员不共享内存 https://dash.plotly.com/sharing-data-between-callbacks)
我使用global 来查看函数在运行时所做的实时更新。同样,在本地作为黑客工作,但在服务器上不起作用。我不知道如果不进行某种全局操作,我还能如何观察函数的进度。我想要一个聪明的解决方案,但我想不出。
我没有使用网络应用程序的经验,所以提前感谢您的建议。
【问题讨论】:
标签: python function heroku plotly-dash worker