私は次の2つの機能を持っています
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 を使用しています。