2017-05-31 111 views
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 & 
+0

也许请求它自己的响应时间很长? –

回答

0

您可以使用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); 
相关问题