【发布时间】:2021-02-13 05:47:04
【问题描述】:
我有一个包含 100 条记录的文件。我想读取每条记录并将其传递给另一个函数。 但是,由于有 100 条记录,我希望以异步方式触发。
当前代码:
foreach ($records as $record) {
$this->myFunction($record); //how to make this trigger all the function calls in one go ?
}
public function myFunction($record) {
//api call1;
//api call2;
//....
}
【问题讨论】:
-
您是否使用
curl执行API 调用?你可以使用curl_multi -
除此之外,PHP 没有原生异步线程。
-
您可能不想在另一个线程中执行此操作。 Apache(PHP 最常见的服务器之一)每个请求使用一个线程。线程数有限制。如果增加每个请求的线程数,就会减少可能同时发生的请求数量
-
@Barmar 这些 API 调用应该为每条记录按顺序运行
-
你能详细说明异步性质吗?您想执行其他 PHP 工作,还是计划显示进度条?这是 GUI 还是 CLI?我建议查看队列和任务运行器。
标签: php asynchronous slim guzzle