摘要:是提供一套生產者消費者模型,可以方便地將一個慢速任務投遞到隊列,由進程池異步地執行。功能目前只能在中使用。版本提供了框架,可以基于和實現一個程序,在或中直接調用擴展就可以使用的功能了。
AsyncTask是swoole提供一套生產者消費者模型,可以方便地將一個慢速任務投遞到隊列,由進程池異步地執行。task功能目前只能在swoole_server中使用。1.9.0版本提供了RedisServer框架,可以基于RedisServer和Task實現一個Server程序,在php-fpm或apache中直接調用Redis擴展就可以使用swoole的task功能了。
創建RedisServerset(array( "task_worker_num" => 32, "worker_num" => 1, )); $server->setHandler("LPUSH", function ($fd, $data) use ($server) { $taskId = $server->task($data); if ($taskId === false) { return Server::format(Server::ERROR); } else { return Server::format(Server::INT, $taskId); } }); $server->on("Finish", function() { }); $server->on("Task", function ($serv, $taskId, $workerId, $data) { //處理任務 }); $server->start();
如果是本機調用可以監聽UnixSocket,局域網內調用需要使用IP:PORT
Task中$data就是客戶端投遞的數據
其他語言也可以使用Redis客戶端投遞任務
可以根據Task任務執行的速度調節task_worker_num控制啟動的進程數量,這些進程是由swoole底層負責管理的,在發生致命錯誤或進程退出后底層會重新創建新的任務進程
投遞任務$redis = new Redis; $redis->connect("127.0.0.1", 9501); $taskId = $redis->lpush("myqueue", json_encode(array("hello", "swoole")));
注意這個RedisServer并不是一臺真正的Redis服務器,它只支持LPUSH一個指令。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22242.html
摘要:和服務關系最密切的進程是中的進程組,絕大部分業務處理都在該進程中進行。隨后觸發一個事件各組件通過該事件進行配置文件加載路由注冊。事件每個請求到來時僅僅會觸發事件。服務器生命周期和服務基本一致,詳情參考源碼剖析功能實現 作者:bromine鏈接:https://www.jianshu.com/p/4c0...來源:簡書著作權歸作者所有,本文已獲得作者授權轉載,并對原文進行了重新的排版。S...
摘要:負責解釋執行文件生成響應,最終返回給,展現至前端。相比于傳統架構,進程模型最大的特點在于其多線程模式處理網絡請求,使得其能輕松應對大量連接。這要求開發人員對于多進程的運行模式有更清晰的認識更容易內存泄露。 一、SwooleSwoole號稱重新定義了PHP,它是一個PHP擴展,使得PHP可以使用異步的方式執行,就像node一樣,而且還能使用socket,為PHP提供了一系列異步IO、事件...
摘要:前言最近在研究,原來一直聽別人在說可以加速,一直都是懵逼的。,全稱,中文譯作快速公共網管接口。那么,我們為什么不能像之前一樣,能夠不重新加載配置文件的,來一個不用加載這么多的依賴的方式呢當然可以啦,這時候就派上用場了。 前言 最近在研究Swoole,原來一直聽別人在說Swoole可以加速,一直都是懵逼的。在研究了Swoole之后,我有了一些自己的理解。 PHP-CGI 的黑歷史 對于 ...
摘要:前言最近在研究,原來一直聽別人在說可以加速,一直都是懵逼的。,全稱,中文譯作快速公共網管接口。那么,我們為什么不能像之前一樣,能夠不重新加載配置文件的,來一個不用加載這么多的依賴的方式呢當然可以啦,這時候就派上用場了。 前言 最近在研究Swoole,原來一直聽別人在說Swoole可以加速,一直都是懵逼的。在研究了Swoole之后,我有了一些自己的理解。 PHP-CGI 的黑歷史 對于 ...
閱讀 2123·2023-04-25 14:56
閱讀 2441·2021-11-16 11:44
閱讀 2696·2021-09-22 15:00
閱讀 1903·2019-08-29 16:55
閱讀 2177·2019-08-29 14:04
閱讀 2305·2019-08-29 11:23
閱讀 3678·2019-08-26 10:46
閱讀 1908·2019-08-22 18:43