我正在做一个小型周末项目,它基本上是一个在线 IDE,允许您从浏览器运行 PHP、Ruby 或 Python 代码。我已经完成了所有设置和工作,但是我创建系统的方式,如果用户运行一个写得不好的脚本,或者一个计算量很大的脚本,系统可能会减慢每个人的速度,直到我达到超时(15 秒)。
我的系统没有通过斐波那契测试。我如何单独运行该过程,这将允许用户创建:
while (true) { fibonacci() } // pseudo-code
不让服务器崩溃?我考虑了以下行动方案:
- 在 Docker ( https://www.docker.io ) 容器中运行每个进程,但我不确定 docker 如何处理慢速容器
- 在 VM 中运行每个进程
- 在即时创建的 EC2 实例中运行每个进程(这不是一个真正的选择,因为这既慢又昂贵)