首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用php进行异步http调用

使用php进行异步http调用
EN

Stack Overflow用户
提问于 2018-12-04 01:05:45
回答 2查看 659关注 0票数 2

我有一种情况,我有一个循环,它将从文件中读取数据块,将这些块发送到rest api,并继续到EOF,但我希望这在循环中是异步的,因此,我不必等待API响应来读取下一个块。我一直在研究Amphp和ReactPHP,因为我找不到一个解决方案,或者我不明白这些库应该如何使用。这是我正在做的一个伪代码。

代码语言:javascript
复制
<?php

while($file.read()){

   $chunk = getNextChunk();

   sendChunkAsync($chunk);

}

function getNextChunk(){

   echo "reading next chunk";

   // read next chunk of data

}

带有amphp的示例

代码语言:javascript
复制
function sendChunkAsync($chunk){

Loop::run(function () {

    $uri =  "https://testapi.com/api";

    $client = new DefaultClient;

    try {

            $promises = $client->request($uri);


        $responses = yield $promises;

       echo "chunk processed";

    } catch (Amp\Artax\HttpException $error) {

        // log error

        // $error->getMessage() . PHP_EOL;
    }
});

}

在这种情况下,我希望(如果读取chunk比从api获得响应更快)会发生这样的事情,不要认为这是文学上的,我正试图为您说明它。

正在读取下一块

正在读取下一块

已处理区块

正在读取下一块

已处理区块

已处理区块

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53598490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档