Non-blocking asynchronous HTTP requests
I ended up implementing a custom function on the base of this post :

private function async( $method, $url, $params = array() ){
    // Get URL parts
    $url_parts = parse_url( $url );

    // If needed, append params to query url
    if( $method === 'GET' ){
        $url .= '?' . http_build_query( $params );
    }

    // Open socket
    $port = isset( $url_parts['port'] ) ? $url_parts['port'] : 80;
    $fp = fsockopen( $url_parts['host'], $port, $errno, $errstr, 30 );

    // Build HTTP request
    $request = $method." ".$url." HTTP/1.1\r\n";
    $request.= "Host: ".$url_parts['host'].":".$port."\r\n";
    $request.= "Connection: Close\r\n";
    if( $method === 'POST' || $method === 'DELETE' ){
        $post_string = Json::encode( $params );
        $request.= "Content-Type: application/json; charset=utf-8\r\n";
        $request.= "Content-Length: ".strlen( $post_string )."\r\n";
        $request.= "\r\n";
        if( isset($post_string) ){
            $request.= $post_string;
        }
    } else {
        $request.= "\r\n";
    }

    // Send request and immediately close the pointer
    fwrite($fp, $request);
    fclose($fp);
}