【问题标题】:Web applications combining python and Php [closed]结合 python 和 Php 的 Web 应用程序 [关闭]
【发布时间】:2012-08-23 23:48:41
【问题描述】:
我有一个完全用通常的 html/css/javascript 和一些使用 jQuery 的附加内容编写的 Web 应用程序。
我还有一个用 python 编写的非常庞大的程序,它需要对用户在我的网络应用程序上提供的输入进行操作。
目前,我正在将 Php 的输入写入文件并在 python 中读取它以进行操作。
有没有更好的方法来实现这种同步?
此外,一旦某些用户单击提交按钮,我就需要执行我的 python 程序。如何让 python 等待这个?
【问题讨论】:
标签:
php
python
web-applications
【解决方案2】:
由于对常规文件的严重 I/O 操作,您的同步方式会产生相当大的开销,您必须处理锁,即使很小的负载增长也会导致整个系统崩溃。
我建议您熟悉通常用于在两个进程之间交换信息的 IPC 技术:
- 在 Python 中有一个 subprocess 模块可以帮助您使用 PIPES 在进程之间进行通信,这比使用常规文件更可靠。 PHP 还具有popen 函数,可让您调用 python 进程并将数据传递给它以进行进一步处理(通过 PIPES)。
- 另一种方法是在两个进程之间从头开始构建套接字通信,其中您的 PHP 部分将是一个套接字客户端,而 Python 部分将是一个套接字服务器(将需要比以前的方式更多的工作)。
- 您还可以使用更好的数据排队方式进行进一步处理(我的意思是比常规文件更好),例如使用消息服务(其中有很多,RabbitMQ、Redis Pub/Sub 等),这些服务绝对可以从 Python 或 PHP 中使用。
还有一些技术不在讨论范围内,但我选择了这 3 种方式来安排 IPC,因为它们是最简单且实施速度最快的。
您可以尝试所有方法或部分方法,然后分析在您的具体情况下哪种方法最好。