0
我正在使用下面的curl命令。 exec()函数需要大约60 ms才能执行,这导致了高响应时间。如何在PHP中使用exec函数在后端运行命令?
curl -X POST -H 'Content-Type: application/json' --connect-timeout 1 -m 1 -d '<payload>' '<url>' > /dev/null 2>&1 &
我正在使用下面的curl命令。 exec()函数需要大约60 ms才能执行,这导致了高响应时间。如何在PHP中使用exec函数在后端运行命令?
curl -X POST -H 'Content-Type: application/json' --connect-timeout 1 -m 1 -d '<payload>' '<url>' > /dev/null 2>&1 &
您可以使用proc_open
函数代替exec
函数。您还可以通过打印日志文件来检查导致性能问题的原因。
$descriptorspec = array(
array('pipe', 'r'), // stdin
array('file', 'response.log', 'a'), // stdout
array('pipe', 'w'), // stderr
);
$env = array(
'PATH' => '/usr/local/bin' //Path to node bin dir
);
$proc = proc_open('wget -qO- --post-data "{YOUR POST DATA}" "{URL}" &', $descriptorspec, $pipes, __DIR__, $env);
if (is_resource($proc))
{
proc_close($proc);
}
**Example:**
$proc = proc_open('wget -qO- --post-data "id=' . $_POST["id"] . '" "http://www.example.com" &', $descriptorspec, $pipes, __DIR__, $env);
也许请求它自己的响应时间很长? –