0

我正在运行一个 Rackspace 云服务器 CentOs + apache2 + php 5.4 + pcntl 模块,它带有一个基本的 Kohana php 框架和一个用于分叉子进程的 mongoDb 任务模块。如果我尝试同时运行超过 1 个子任务进程,则会收到以下错误:

Unable to connect to MongoDB server at Interrupted system call

根据 mongoDb 任务模块作者的说法,该问题与代码无关,而可能与 mongoDb 驱动程序或服务器有关。

有谁知道错误的含义和/或可能是什么原因?

完整的错误输出:

0 /var/www/.../modules/mangodb/classes/mangodb.php(370): MangoDB->connect()

1 /var/www/.../modules/mangodb/classes/mangodb.php(173): MangoDB->_call('command', Array, Array)

2 /var/www/.../modules/mangotask/classes/model/queue/task.php(33): MangoDB->command(Array)

3 /var/www/.../modules/mangoQueue/classes/controller/daemon.php(232): Model_Queue_Task->get_next()

4 /var/www/.../modules/mangoQueue/classes/controller/daemon.php(111): Controller_Daemon->daemon()

5【内部函数】:Controller_Daemon->action_index()

6 /var/www/.../system/classes/kohana/request/client/internal.php(118):reflectionMethod->invoke(Object(Controller_Daemon))

7 /var/www/.../system/classes/kohana/request/client.php(64): Kohana_Request_Client_Internal->execute_request(对象(请求))

8 /var/www/.../system/classes/kohana/request.php(1138): Kohana_Request_Client->execute(Object(Request))

9 /var/www/.../index.php(109): Kohana_Request->execute()

4

1 回答 1

0

驱动程序版本 1.2.12 肯定存在分叉问题,但这应该在即将发布的 1.3.0 版本中解决。特别是,PHP-426是解决此问题的较晚问题之一,因为它将连接选择从 重新定位MongoCursorMongoCursor::doQuery(),允许驱动程序在分叉后正确运行。我会留意下一个 1.3.0 预发布版(beta3 或 rc1),当然,当最终的 1.3.0 版本通过http://pecl.php.net/package/mongo发布时。

于 2012-09-19T18:58:10.277 回答