捕获进程超时RuntimeException

时间:2017-05-24 09:17:52

标签: symfony

在我的项目中,我使用ProcessCompoment并使用120秒的超时。

$process->setTimeout(120);
$process->run();

// executes after the command finishes
if (!$process->isSuccessful()) {
    $job->setResult('error');
} else {
    $job->setResult($process->getOutput());
}

问题是,当达到超时时,Symfony会返回RuntimeException,但我需要知道此命令何时中止,以便在我的数据库中存储错误代替结果。

有人有想法吗?

1 个答案:

答案 0 :(得分:2)

最后,我只是使用一个简单的try-catch ...

$process->setTimeout(120);
try {
    $process->run();
} catch (RuntimeException $exception) {
    $job->setResult('error');
}