2

您知道任何可以简化流程、信号发送等工作的库吗?先感谢您!

编辑:我们正在 PHP 守护程序中从外部源加载一些数据。我们希望将 PHP 进程拆分为:

  • 每个数据源加载一个进程,
  • 一个处理来自每个数据源的数据的过程。
4

2 回答 2

3

您可能想查看Spork,它旨在简化 php 中的分叉和后台处理。

它很新(仅在 3 天前宣布),但值得一试。

于 2012-04-13T10:30:27.233 回答
2

您可以使用过程控制库,但它仅适用于 linux。

出于fork目的,它包含pcntl_fork功能。示例

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
     pcntl_wait($status); //Protect against Zombie children
} else {
     // we are the child
}

UPD:如果我正确理解您的目标,您可以在不分叉流程的情况下设计您的应用程序。您可以使用两个守护进程,其中第一个守护进程将处理数据源并将其添加到队列中。第二个守护进程将跟踪队列并对其进行处理。

Ps 据我所知,php 不能在 windows 平台上分叉进程。此外,您还可以在 php.ini 中使用POSIX 函数

于 2012-04-13T07:51:30.580 回答