Guzzle异步请求无法正常工作

时间:2014-12-15 23:02:12

标签: php guzzle

我使用的是通过作曲家安装的Guzzle而未能做到相对简单的事情。

我可能误解了documentation,但基本上我想要做的是向服务器运行POST请求并继续执行代码而不等待响应。这就是我所拥有的:

$client = new \GuzzleHttp\Client(/*baseUrl, and auth credentials here*/);
$client->post('runtime/process-instances', [
    'future'=>true,
    'json'=> $data // is an array
]);
die("I'm done with the call");

现在让我们说runtime/process-instances运行大约5分钟,我不会在5分钟之前收到消息消息...而是在消息发送后我想要它到服务器。

现在我无法访问服务器,因此在运行执行之前我无法让服务器响应。我只需要忽略响应。

感谢任何帮助。

我尝试过的事情:

$client->post(/*blabla*/)->then(function ($response) {});

2 个答案:

答案 0 :(得分:2)

Guzzle无法发送请求并立即退出。异步请求要求您等待它们完成。如果不这样做,请求将不会被发送。

另请注意,您使用的是post而不是postAsync,前者是同步(阻止)请求。要异步发送发布请求,请使用后者。在您的代码示例中,通过将post更改为postAsync,进程将在请求完成之前退出,但目标将不会收到该请求。

答案 1 :(得分:0)

您是否尝试过设置低timeout