从php在后台执行python

问题描述

我想找到一种使用在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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...