gpt4 book ai didi

php - PHP中的进程间通信

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:49 24 4
gpt4 key购买 nike

我在一个 PHP 平台上工作,该平台为开发人员提供了一些功能,例如 cron 作业、事件和 WebSocket 通信,为此我运行了三个用 PHP 编写的不同守护进程,因此管理员可以禁用特定功能。当我启动它们时,在 fork 之后,守护进程启动器将 PID 保存在我的数据库中,然后包含守护进程 PHP 文件。我需要允许开发人员使用特定的 PHP 类轻松地与这些守护进程通信。我已经看到存在许多与进程通信的不同方法,例如 proc_open 函数,但看起来必须运行一个新命令才能与之通信。我正在寻找类似 PHP 套接字的东西,但它允许我打开套接字到 PID 并且不使用端口(如果可能的话)以避免与其他守护进程套接字发生冲突。使用 PHP 的 native 工具执行此操作的更好方法是什么?

更多细节:这些守护进程可能能够管理相当大的连接负载,事件也通过 WebSocket 或 AJAX 轮询传播到客户端,因此事件和 WebSocket 守护进程在它们之间进行通信。

最佳答案

使用基于流程的方法并重复使用相同的流程(根据您的解释推测),并且在不使用套接字的情况下与其通信将很困难。如果您对服务器以外的可伸缩性不那么在意,那也没关系。您至少必须使用套接字(网络或 unix),然后让进程绑定(bind)并监听随机端口,并将端口号或 unix 路径与 PID 一起保存在数据库中。

另一个(老式选项)是使用 xinetd ;让你的守护进程由 xinetd 启动和管理。在这里,您实际上是通过将其外包给 xinetd 守护进程来使用套接字重新连接 stdin 和 stdout。

关于php - PHP中的进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35134859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com