AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

誰說PHP不能異步和并行運行?

來源: 責編: 時間:2024-05-17 17:48:43 199觀看
導讀場景在處理需要遠程接口調用的大量數據時,我們面臨一個關鍵問題:串行處理導致的效率低下。如果每個接口調用需要1秒,那么即使是10條數據,也需要10秒來完成,這還沒有考慮到網絡延遲和接口提供方可能出現的問題。在串行執行

場景

在處理需要遠程接口調用的大量數據時,我們面臨一個關鍵問題:串行處理導致的效率低下。如果每個接口調用需要1秒,那么即使是10條數據,也需要10秒來完成,這還沒有考慮到網絡延遲和接口提供方可能出現的問題。在串行執行的情況下,一旦接口調用遇到問題,整個處理時間會成倍增加,這不僅降低了程序的響應速度,也增加了系統的不穩定性。MKv28資訊網——每日最新資訊28at.com

為了解決這個問題,我們可以采取以下幾種優化策略:MKv28資訊網——每日最新資訊28at.com

  • 異步執行:通過異步調用遠程接口,可以讓程序在等待接口響應的同時繼續執行其他任務,從而提高整體的處理速度。
  • 并行處理:利用多線程或多進程技術,同時發起多個遠程接口調用,顯著減少總的處理時間。

現有方案

遠程接口案例

假設第三方或者遠程接口調用偽代碼如下:MKv28資訊網——每日最新資訊28at.com

<?phppublic function sync(): /support/Response{    sleep(1);    return json(['data' => date('Y-m-d H:i:s')]);}

接口調用訪問地址:http://127.0.0.1:8888/index/syncMKv28資訊網——每日最新資訊28at.com

業務系統案例

假設業務系統調用偽代碼:MKv28資訊網——每日最新資訊28at.com

<?phpdeclare(strict_types=1);foreach (range(1, 10) as $key) {    $list[] = file_get_contents("http://127.0.0.1:8888/index/sync");}print_r($list);

調用輸出:MKv28資訊網——每日最新資訊28at.com

[x] [系統調用耗時時間] 10.138074159622Array(    [0] => {"data":"2024-05-16 22:38:00"}    [1] => {"data":"2024-05-16 22:38:01"}    [2] => {"data":"2024-05-16 22:38:02"}    [3] => {"data":"2024-05-16 22:38:03"}    [4] => {"data":"2024-05-16 22:38:04"}    [5] => {"data":"2024-05-16 22:38:05"}    [6] => {"data":"2024-05-16 22:38:06"}    [7] => {"data":"2024-05-16 22:38:07"}    [8] => {"data":"2024-05-16 22:38:08"}    [9] => {"data":"2024-05-16 22:38:09"})

可以看出上面是按順序調用接口,總共耗時10.14秒。MKv28資訊網——每日最新資訊28at.com

異步并行調用

這個庫提供了一個小而簡單的PHP PCNTL擴展的包裝器。它允許并行運行不同的進程,并具有易于使用的API。官方地址:https://github.com/spatie/asyncMKv28資訊網——每日最新資訊28at.com

安裝

您可以通過composer安裝該軟件包:MKv28資訊網——每日最新資訊28at.com

composer require spatie/async

注意:該擴展庫異步并行執行需要所需的擴展pcntl 和 posix。沒有安裝在您當前的PHP運行時中, Pool 將自動回退到同步執行任務。MKv28資訊網——每日最新資訊28at.com

Pool類有一個靜態方法 isSupported,你可以調用它來檢查你的平臺是否能夠運行異步進程。MKv28資訊網——每日最新資訊28at.com

require '../vendor/autoload.php';use Spatie/Async/Pool;var_dump(Pool::isSupported());

支持異步進程則打印true,否則為false。MKv28資訊網——每日最新資訊28at.com

使用

<?php/** * @author Tinywan(ShaoBo Wan) * @date 2024/5/21 14:00 */declare(strict_types=1);require '../vendor/autoload.php';use Spatie/Async/Pool;$timeOne = microtime(true);$pool = Pool::create();foreach (range(1, 10) as $item) {    $pool[] = async(function () use ($item) {        return file_get_contents("http://127.0.0.1:8888/index/sync");    })->then(function (string $output) use (&$list) {        // Handle success        $list[] = $output;    })->catch(function (Throwable $exception) {        // Handle exception        echo '[x] [異常] ' . $exception->getMessage() . PHP_EOL;    });}await($pool);$timeTwo = microtime(true);echo '[x] [系統調用耗時時間] ' . ($timeTwo - $timeOne) . PHP_EOL,print_r($list);

調用輸出:MKv28資訊網——每日最新資訊28at.com

[x] [系統調用耗時時間] 4.3443310260773Array(    [0] => {"data":"2024-05-16 22:53:47"}    [1] => {"data":"2024-05-16 22:53:47"}    [2] => {"data":"2024-05-16 22:53:47"}    [3] => {"data":"2024-05-16 22:53:47"}    [4] => {"data":"2024-05-16 22:53:47"}    [5] => {"data":"2024-05-16 22:53:47"}    [6] => {"data":"2024-05-16 22:53:47"}    [7] => {"data":"2024-05-16 22:53:47"}    [8] => {"data":"2024-05-16 22:53:48"}    [9] => {"data":"2024-05-16 22:53:49"})

可以看出上面是按并行調用接口,總共耗時4.34秒。節省了差不多一半多時間。MKv28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-88934-0.html誰說PHP不能異步和并行運行?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 聊聊樂觀鎖與悲觀鎖

下一篇: Swift 定制 Core Data 遷移

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 之家push系統迭代之路

    前言在這個信息爆炸的互聯網時代,能夠及時準確獲取信息是當今社會要解決的關鍵問題之一。隨著之家用戶體量和內容規模的不斷增大,傳統的靠"主動拉"獲取信息的方式已不能滿足用
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風頭無兩。你可以說陳思誠的
  • 小米公益基金會捐贈2500萬元馳援北京、河北暴雨救災

    8月2日消息,今日小米科技創始人雷軍在其微博上發布消息稱,小米公益基金會宣布捐贈2500萬元馳援北京、河北暴雨救災。攜手抗災,京冀安康!以下為公告原文
  • 華為Mate 60保護殼曝光:碩大后置相機模組 凸起程度有驚喜

    這段時間以來,關于華為新旗艦的爆料日漸密集。據此前多方爆料,今年華為將開始恢復一年雙旗艦戰略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • Counterpoint :OPPO雙旗艦戰略全面落地 高端產品銷量增長22%

    2023年6月30日,全球行業分析機構Counterpoint Research發布的《中國智能手機高端市場白皮書》顯示,中國智能手機品牌正在尋求高質量發展,中國高端智能
Top