问题描述
我想找到一种使用在apache和redhat上运行的PHP在后台执行python脚本的最快方法。
我的python脚本复制了用户不需要等待的大型数据集。
如果我直接从命令行运行此脚本,则大约需要一分钟。如果从PHP执行它以在后台运行,我期望有类似的运行时间。但是,如果我使用system();该脚本最多可能需要一个小时才能运行。它挂了,我不确定为什么。另外,文件并非总是完全复制。这是我如何运行system()的示例
system("python python/myscript.py myargs 1> backuploc/backup.log 2> backuploc/backup_err.log & echo $! >> backuploc/pid.log");
所以我尝试了exec(),passthru()和shell_exec()。由于python脚本被调用了两次,因此这些方法的完成速度都比较快,并且可能需要2分钟的时间来复制。但是,这些都不对我有任何影响。用户必须等待传输。如果他们关闭浏览器或浏览器超时,则可能会出现问题。
exec("python python/myscript.py myargs 1> backuploc/backup.log 2> backuploc/backup_err.log & echo $! >> backuploc/pid.log");
关于如何在PHP后台可靠,高效地运行python脚本的任何建议?为什么使用system()执行这么慢?为什么不能使用system()可靠地复制文件,但是使用exec(),passthru()和shell_exec()可靠?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)