Symfony的进程PID在执行期间递增1 ......?

时间:2016-12-19 16:20:14

标签: php symfony process

我创建了一个Symfony Command,它将一些数据导出到文件中。数据是每个用户特定的,我的命令接收userID作为参数。如果未指定userID,该命令将查找所有用户,然后遍历它们,为每个用户调用相同的命令,但这次使用用户的ID:

// command execute():
$user = null;
$userId = $input->getOption('userId');
if($userId !== null)
    $user = // find user by ID in DB

if($user === null)
{
    // create $command and other arguments
    $users = // findAll()
    foreach($users as $user)
    { 
        // add user ID argument
        $returnCode = $command->run($argumentsInput, $output);
    }
}
else // do the export for specified user

或多或少,这就是它的工作原理。现在,我想将此命令称为来自控制器的后台进程:

// controller action:
$process = new Process($command); //without userId
$processId = $process->getPid();
// save PID to file

它几乎可以工作。差不多,因为PID会发生变化。我猜是在某个地方开始有一些子进程。据我所知,运行一个接一个命令的进程的实际PID是$processId + 1,虽然其他一切似乎都有效(一个进程调用命令,它们工作并导出数据),但是没有进程$processId。 我不会认为它总是+1,我只是想知道,为什么会发生......?

0 个答案:

没有答案