问题描述
- 接受用户上传的文档(通常是文本文件)
- 使用shell_exec在上传的文件上运行Python脚本(这会在磁盘上本地生成一个文本文件输出);运行shell_exec的PHP代码看起来像
$result = shell_exec python3 memory_hog_script.py user_uploaded_text_file.txt
- 将文本显示给用户
由PHP的shell_exec执行的Python脚本通常需要5到10秒钟才能运行,但使用的开源库在运行时会占用大量内存/ cpu(例如50-70%)。
现在更常见的是,我有多个用户恰好在同一时间上传文件。当少数用户同时上传文件时,我的cpu过载,因为每个用户都通过shell_exec执行了占用大量内存的python文件的单独实例。发生这种情况时,服务器崩溃。
我正在尝试找出解决此问题的最佳方法,我有一些想法,但不确定哪一个是最佳方法/是否可行:
-
在
shell_exec
被PHP运行之前,请检查cpu使用率,看看它是否大于某个阈值(例如70%);如果是这样,请等待10秒钟,然后重试 -
创建某种排队系统;我不确定在这里有什么选择,但是我想有办法将
shell_exec
分成某种托管队列-我很高兴在这里研究新技术,所以如果有的话您可以向我介绍的方法,我很想深入了解!
任何输入将不胜感激!谢谢:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)