摘要:是一個(gè)非常流行的的客戶端,現(xiàn)在各大廠的也都開(kāi)始基于開(kāi)發(fā),因?yàn)橹恢С值膮f(xié)程,而默認(rèn)是使用擴(kuò)展的,所以開(kāi)發(fā)了,能在不修改源碼的情況下讓協(xié)程化。
Guzzle 是一個(gè)非常流行的 PHP 的 HTTP 客戶端,現(xiàn)在各大廠的 SDK 也都開(kāi)始基于 Guzzle 開(kāi)發(fā),因?yàn)?Swoole 只支持 PHP Stream 的協(xié)程 Hook ,而 Guzzle 默認(rèn)是使用 cURL 擴(kuò)展的,所以 Mix PHP 開(kāi)發(fā)了 Guzzle Hook,能在不修改源碼的情況下讓 Guzzle 協(xié)程化。
Githubhttps://github.com/mix-php/guzzle-hook
安裝使用 Composer 安裝:
composer require mix/guzzle-hook
在項(xiàng)目的 composer.json 文件中增加 extra 配置項(xiàng),如下:
"extra": { "include_files": [ "vendor/mix/guzzle-hook/src/functions_include.php" ] }使用 直接使用 Guzzle 開(kāi)發(fā)
無(wú)需做任何特殊的代碼處理,直接根據(jù) Guzzle 文檔使用:
// Mix PHP 中是 xgo ,原生 swoole 是 go go(function () { $client = new GuzzleHttpClient(); $res = $client->request("GET", "https://api.github.com/user", [ "auth" => ["user", "pass"], ]); echo $res->getStatusCode(); });第三方 SDK 依賴 Guzzle
比如:
alibabacloud/client
TencentCloud/tencentcloud-sdk-php
這類(lèi)第三方庫(kù)從 composer.json 的 require 能看出來(lái)依賴了 guzzlehttp/guzzle,則可以在 Swoole 的協(xié)程中直接使用。
// Mix PHP 中是 xgo ,原生 swoole 是 go go(function () { try { // 實(shí)例化一個(gè)證書(shū)對(duì)象,入?yún)⑿枰獋魅腧v訊云賬戶secretId,secretKey $cred = new Credential("secretId", "secretKey"); // # 實(shí)例化要請(qǐng)求產(chǎn)品(以cvm為例)的client對(duì)象 $client = new CvmClient($cred, "ap-guangzhou"); // 實(shí)例化一個(gè)請(qǐng)求對(duì)象 $req = new DescribeZonesRequest(); // 通過(guò)client對(duì)象調(diào)用想要訪問(wèn)的接口,需要傳入請(qǐng)求對(duì)象 $resp = $client->DescribeZones($req); print_r($resp->toJsonString()); } catch (TencentCloudSDKException $e) { echo $e; } });
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/31388.html
摘要:前些時(shí)間我們發(fā)布了實(shí)例協(xié)程池異步郵件發(fā)送守護(hù)程序范例,這一次我們提供一個(gè)使用大廠通過(guò)協(xié)程化來(lái)并行執(zhí)行短信發(fā)送任務(wù),本文是一個(gè)代碼簡(jiǎn)單性能極強(qiáng)的范例。 前些時(shí)間我們發(fā)布了 Mix PHP V2 實(shí)例:協(xié)程池異步郵件發(fā)送守護(hù)程序 范例,這一次我們提供一個(gè)使用大廠 SDK 通過(guò) Swoole Hook 協(xié)程化來(lái)并行執(zhí)行短信發(fā)送任務(wù),本文是一個(gè)代碼簡(jiǎn)單、IO 性能極強(qiáng)的范例。 請(qǐng)先升級(jí)到 m...
摘要:主函數(shù)查詢數(shù)據(jù)不手動(dòng)釋放的連接不會(huì)歸還連接池,會(huì)在析構(gòu)時(shí)丟棄執(zhí)行結(jié)果為,說(shuō)明是并行執(zhí)行的。主函數(shù)查詢數(shù)據(jù)即便拋出了異常,仍然能執(zhí)行到,沒(méi)有導(dǎo)致內(nèi)的一直處于阻塞狀態(tài)。主函數(shù)一次性定時(shí)持續(xù)定時(shí)停止定時(shí) 協(xié)程 Mix PHP V2 基于 Swoole 4 的 PHP Stream Hook 協(xié)程技術(shù)開(kāi)發(fā),協(xié)程使用方式與 Golang 幾乎一致,包括框架封裝的協(xié)程池、連接池、命令行處理都大量參...
摘要:這個(gè)項(xiàng)目目前已經(jīng)實(shí)現(xiàn)無(wú)需修改任何代碼,只需一句話設(shè)置全局默認(rèn)處理器,完美無(wú)縫兼容協(xié)程環(huán)境。使用在中,你可以把默認(rèn)設(shè)為。 讓 Guzzle 支持 Swoole 協(xié)程,這個(gè)項(xiàng)目目的就是這么簡(jiǎn)單明了! 本項(xiàng)目不包含 Guzzle 功能,請(qǐng)自行在項(xiàng)目中引用 Guzzle 6.x,理論上可以支持升級(jí) Guzzle 版本而無(wú)需更新 Guzzle-Swoole! Composer:yurunsoft...
摘要:消費(fèi)者開(kāi)發(fā)使用本例時(shí),請(qǐng)確保你使用的編譯時(shí)開(kāi)啟了本例我們采用的守護(hù)程序協(xié)程池來(lái)完成一個(gè)超高性能的郵件發(fā)送程序。 去年 Mix PHP V1 發(fā)布時(shí),我寫(xiě)了一個(gè)多進(jìn)程的郵件發(fā)送實(shí)例: 使用 mixphp 打造多進(jìn)程異步郵件發(fā)送,今年 Mix PHP V2 發(fā)布,全面的協(xié)程支持讓我們可以使用一個(gè)進(jìn)程就可達(dá)到之前多個(gè)進(jìn)程都無(wú)法達(dá)到的更高 IO 性能,所以今天重寫(xiě)一個(gè)協(xié)程池版本的郵件發(fā)送實(shí)例。...
摘要:搶占式調(diào)度我們?cè)诮衲昴瓿蹙陀?jì)劃實(shí)現(xiàn)的搶占式調(diào)度,以滿足實(shí)現(xiàn)有些場(chǎng)景下的不均衡調(diào)度帶來(lái)的問(wèn)題??紤]開(kāi)線程,負(fù)責(zé)檢查當(dāng)前執(zhí)行協(xié)程執(zhí)行時(shí)間。達(dá)到我們的第二個(gè)協(xié)程主動(dòng)搶占第一個(gè)協(xié)程的效果。 前言 Swoole內(nèi)核團(tuán)隊(duì)開(kāi)設(shè)的專(zhuān)欄,會(huì)逐漸投入精力寫(xiě)文章介紹Swoole的開(kāi)發(fā)歷程,實(shí)現(xiàn)原理,應(yīng)用實(shí)踐等,大家可以更好的交流,共同學(xué)習(xí),建設(shè)PHP生態(tài)。 協(xié)程調(diào)度 去年Swoole推出了4.0版本后,完整...
閱讀 2680·2021-11-23 09:51
閱讀 3435·2021-11-22 15:22
閱讀 1968·2021-11-18 13:22
閱讀 2495·2021-09-24 09:48
閱讀 1396·2019-08-29 13:58
閱讀 1395·2019-08-26 13:39
閱讀 2534·2019-08-26 10:48
閱讀 3119·2019-08-26 10:21