web-dev-qa-db-fra.com

Comment exécuter plusieurs requêtes HTTP Async dans Wordpress?

Dans mon plugin, je souhaite appeler 10 requêtes HTTP ou plus de manière asynchrone dans WordPress, de sorte que je n'ai pas besoin d'attendre la réponse de quiconque. Existe-t-il un moyen dans Wordpress qui le supporte et qui soit compatible avec différentes versions de WordPress?

1
beginner

La classe Requests (intégrée) vous permet d'appeler plusieurs demandes simultanément: Requests::request_multiple .

<?php

$requests = Requests::request_multiple([
    [
        'url' => 'https://www.mocky.io/v2/5acb821f2f00005300411631',
        'type' => 'GET',
        'headers' => [
            'Accept' => 'application/json'
        ],

    ],
    [
        'url' => 'https://www.mocky.io/v2/5acb821f2f00005300411631',
        'type' => 'POST',
        'headers' => [
            'Accept' => 'application/json'
        ],
        'data' => json_encode([
            'text' => 'My POST Data'
        ])
    ],
    [
        'url' => 'https://www.mocky.io/v2/5acb82ee2f00005100411635',
        'type' => 'POST',
        'headers' => [
            'Accept' => 'application/json'
        ],
        'data' => json_encode([
            'text' => 'More POST Data'
        ])
    ],  
]);

foreach ($request as $request) {
    if ($request->status_code !== 200) {
        // handle error
    }
    // handle success
    echo $request->body;
}
1
alpipego