PHP和C守护进程之间最有效的进程间调用

PHP和C守护进程之间最有效的进程间调用,php,c,interprocess,Php,C,Interprocess,我有一个由PHP支持的RESTAPI,它调用一个C程序。根据输入,C程序返回JSON数据,PHP读取输出并直接将其发送回客户端 该守则基本上是: $command = $binary . " " . $parameters; $output = shell_exec($command); echo $output; 对于API的每次调用,PHP都会启动程序,进行一些处理,然后结束 我希望通过使C程序作为守护进程运行,然后将PHP后端调用引入到这个守护进程中来提高效率 此外,我可能正在迁移到Py

我有一个由PHP支持的RESTAPI,它调用一个C程序。根据输入,C程序返回JSON数据,PHP读取输出并直接将其发送回客户端

该守则基本上是:

$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;
对于API的每次调用,PHP都会启动程序,进行一些处理,然后结束

我希望通过使C程序作为守护进程运行,然后将PHP后端调用引入到这个守护进程中来提高效率

此外,我可能正在迁移到Python web框架,因此我希望从客户端获得跨平台的功能


我的直觉反应是简单地通过套接字来实现,因为这样我就可以把守护进程放在任何地方(在可预见的将来,它将位于同一个web服务器上,但最终我可以将它移走)。但是套接字是否足够有效,或者是否有其他更好的做法?

如果不了解更多的C程序,很难回答这个问题

有一件事是绝对值得检查的


它不是跨平台的,但您可以编写类似于Python或Ruby的扩展,扩展部分实际上只是C程序的一个小框架,编写起来非常简单。

我最近一直在使用Gearman,它可以做到这一点,没有问题。虽然它主要是一个队列,但如果您想在PHP中等待某件事情完成,也可以启动阻塞工作程序。我相信workers可以用大多数语言编写——当我再次使用PHP时,我应该认为C是没有问题的。跨平台、跨语言、分布式、快速、友好:感谢的可能重复,我的程序实际上只是一个基于用户输入返回字符串的小C程序。所以它还不是很复杂。不过,我可能会调查zeromq,这可能是我要寻找的更多内容。