Странная проблема с обещаниями на окнах - PullRequest
0 голосов
/ 18 октября 2019

это странный случай, на который я наткнулся, пытаясь развиваться локально в wind10 с wamp64, php 7.2.18, используя laravel. (это работает без проблем на сервере Linux). Обещания не будут срабатывать до тех пор, пока не истечет время ожидания основного сценария

use GuzzleHttp\Client;
use GuzzleHttp\Promise\EachPromise;
use GuzzleHttp\Psr7\Response;

...

    public function test()
    {
        ini_set('max_execution_time', 5);

        $startTime = time();
        $testingModel = new TestingModel;
        $testingModel->id = $startTime;
        $testingModel->save();

        $data = [
            'http://127.0.0.1:88/a',
            'http://127.0.0.1:88/b',
            'http://127.0.0.1:88/c',
        ];

        $client = new Client();

        $promises = (function () use ($client, $data, $startTime) {
            foreach ($data as $datum) {
                yield $client->getAsync($datum.'?startTime='.$startTime);
            }
        });

        $eachPromise = new EachPromise($promises, [
            'concurrency' => 3,
            'fulfilled' => function (Response $response) {
                // handle successful promise here
            },
            'rejected'  => function ($reason) {
                // handle promise rejected here
            },
        ]);

        $eachPromise->promise()->wait();

    }

, поэтому код будет максимально пустым, все вызываемые страницы будут работать и возвращать ответ простым ответом return () -> json (['status)'=>' complete ']);

на запрошенных страницах также есть регистраторы, которые указывают время начала для каждой страницы в одном и том же идентификаторе TestingModel (монго-колл). Также проверено все с помощью curl, и все они работают

результаты:
id: 1571395252
aStartTime: 1571395257 (+ 5сек)
bStartTime: 1571395257 (+ 5сек)
cStartTime:1571395257 (+ 5сек)

Журнал доступа apache также выглядит одинаково после того, как первый сценарий отключился, остальные 3 сценария были запущены. Это, безусловно, проблема с apache / php conf или, может быть, даже какое-то ограничение win10 ... без понятия.

Кто-нибудь еще сталкивался с этой проблемой? У меня тоже была такая же проблема пару месяцев назад, но я проигнорировал ее, потому что я редко развиваюсь на победах, но мое любопытство победило:).

Приветствия

...