成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在php-fpm或apache中使用swoole提供的task功能

Developer / 946人閱讀

摘要:是提供一套生產(chǎn)者消費者模型,可以方便地將一個慢速任務(wù)投遞到隊列,由進程池異步地執(zhí)行。功能目前只能在中使用。版本提供了框架,可以基于和實現(xiàn)一個程序,在或中直接調(diào)用擴展就可以使用的功能了。

AsyncTask是swoole提供一套生產(chǎn)者消費者模型,可以方便地將一個慢速任務(wù)投遞到隊列,由進程池異步地執(zhí)行。task功能目前只能在swoole_server中使用。1.9.0版本提供了RedisServer框架,可以基于RedisServer和Task實現(xiàn)一個Server程序,在php-fpm或apache中直接調(diào)用Redis擴展就可以使用swoole的task功能了。

創(chuàng)建RedisServer
set(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) {
    //處理任務(wù)
});

$server->start();

如果是本機調(diào)用可以監(jiān)聽UnixSocket,局域網(wǎng)內(nèi)調(diào)用需要使用IP:PORT

Task中$data就是客戶端投遞的數(shù)據(jù)

其他語言也可以使用Redis客戶端投遞任務(wù)

可以根據(jù)Task任務(wù)執(zhí)行的速度調(diào)節(jié)task_worker_num控制啟動的進程數(shù)量,這些進程是由swoole底層負責(zé)管理的,在發(fā)生致命錯誤或進程退出后底層會重新創(chuàng)建新的任務(wù)進程

投遞任務(wù)
$redis = new Redis;
$redis->connect("127.0.0.1", 9501);
$taskId = $redis->lpush("myqueue", json_encode(array("hello", "swoole")));

注意這個RedisServer并不是一臺真正的Redis服務(wù)器,它只支持LPUSH一個指令。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22242.html

相關(guān)文章

  • Swoft 源碼剖析 - Swoole和Swoft那些事 (Http/Rpc服務(wù)篇)

    摘要:和服務(wù)關(guān)系最密切的進程是中的進程組,絕大部分業(yè)務(wù)處理都在該進程中進行。隨后觸發(fā)一個事件各組件通過該事件進行配置文件加載路由注冊。事件每個請求到來時僅僅會觸發(fā)事件。服務(wù)器生命周期和服務(wù)基本一致,詳情參考源碼剖析功能實現(xiàn) 作者:bromine鏈接:https://www.jianshu.com/p/4c0...來源:簡書著作權(quán)歸作者所有,本文已獲得作者授權(quán)轉(zhuǎn)載,并對原文進行了重新的排版。S...

    張漢慶 評論0 收藏0
  • 了解swoole運行模式,加速laravel應(yīng)用

    摘要:負責(zé)解釋執(zhí)行文件生成響應(yīng),最終返回給,展現(xiàn)至前端。相比于傳統(tǒng)架構(gòu),進程模型最大的特點在于其多線程模式處理網(wǎng)絡(luò)請求,使得其能輕松應(yīng)對大量連接。這要求開發(fā)人員對于多進程的運行模式有更清晰的認(rèn)識更容易內(nèi)存泄露。 一、SwooleSwoole號稱重新定義了PHP,它是一個PHP擴展,使得PHP可以使用異步的方式執(zhí)行,就像node一樣,而且還能使用socket,為PHP提供了一系列異步IO、事件...

    時飛 評論0 收藏0
  • 為什么Swoole可以加速php

    摘要:前言最近在研究,原來一直聽別人在說可以加速,一直都是懵逼的。,全稱,中文譯作快速公共網(wǎng)管接口。那么,我們?yōu)槭裁床荒芟裰耙粯?,能夠不重新加載配置文件的,來一個不用加載這么多的依賴的方式呢當(dāng)然可以啦,這時候就派上用場了。 前言 最近在研究Swoole,原來一直聽別人在說Swoole可以加速,一直都是懵逼的。在研究了Swoole之后,我有了一些自己的理解。 PHP-CGI 的黑歷史 對于 ...

    y1chuan 評論0 收藏0
  • 為什么Swoole可以加速php

    摘要:前言最近在研究,原來一直聽別人在說可以加速,一直都是懵逼的。,全稱,中文譯作快速公共網(wǎng)管接口。那么,我們?yōu)槭裁床荒芟裰耙粯?,能夠不重新加載配置文件的,來一個不用加載這么多的依賴的方式呢當(dāng)然可以啦,這時候就派上用場了。 前言 最近在研究Swoole,原來一直聽別人在說Swoole可以加速,一直都是懵逼的。在研究了Swoole之后,我有了一些自己的理解。 PHP-CGI 的黑歷史 對于 ...

    bergwhite 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<