У меня есть следующие две функции:
public function myEndpoint(){
$this->logger->debug('Started');
$this->guzzle->requestAsync('post', 'http://myurl.com/doNotWait')->wait();
$this->logger->debug("I shouldn't wait");
}
public function doNotWait(){
sleep(10);
$this->logger->debug("You shouldn't wait");
}
Теперь мне нужно увидеть в моих журналах:
Started
I shouldn't wait
You shouldn't wait
Но то, что я вижу
Started
You shouldn't wait
I shouldn't wait
Также я попытался использовать следующие способы:
Способ № 1
public function myEndpoint(){
$this->logger->debug('Started');
$this->guzzle->requestAsync('post', 'http://myurl.com/doNotWait', ['synchronous' => false])->wait();
$this->logger->debug("I shouldn't wait");
}
Путь № 2
public function myEndpoint(){
$this->logger->debug('Started');
$this->guzzle->requestAsync('post', 'http://myurl.com/doNotWait');
$queue = \GuzzleHttp\Promise\queue()->run();
$this->logger->debug("I shouldn't wait");
}
Но результат никогда не является желательным. Есть идеи? Я использую Guzzle 6.x.