我使用的是通过作曲家安装的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) {});
答案 0 :(得分:2)
Guzzle无法发送请求并立即退出。异步请求要求您等待它们完成。如果不这样做,请求将不会被发送。
另请注意,您使用的是post
而不是postAsync
,前者是同步(阻止)请求。要异步发送发布请求,请使用后者。在您的代码示例中,通过将post
更改为postAsync
,进程将在请求完成之前退出,但目标将不会收到该请求。
答案 1 :(得分:0)
您是否尝试过设置低timeout?