国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

學(xué)習(xí)swoole的心得(一)

huashiou / 753人閱讀

摘要:假如我們要發(fā)布封郵件,用一個循環(huán),循環(huán)遍執(zhí)行發(fā)郵件操作。我采取的是第二種方式噢。安裝完成,需要更改的配置,將放在這個配置中,然后重啟。向服務(wù)器端發(fā)送一個字符串,服務(wù)器會返回一個字符串。以上是簡單的安裝和連同。

什么是swoole
swoole是PHP的異步、并行、高性能網(wǎng)絡(luò)通信引擎,使用純C語言編寫,提供了PHP語言的異步多線程服務(wù)器,異步TCP/UDP網(wǎng)絡(luò)客戶端,異步MySQL,異步Redis,數(shù)據(jù)庫連接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。 Swoole內(nèi)置了Http/WebSocket服務(wù)器端/客戶端、Http2.0服務(wù)器端。
Swoole可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用PHP+Swoole作為網(wǎng)絡(luò)通信框架,可以使企業(yè)IT研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。隨著我們

我們?yōu)槭裁从胹woole

用戶打開了我們的網(wǎng)站。他要做的就是勾選需要發(fā)郵件的代理商列表,然后把結(jié)算郵件發(fā)出去。
假如我們需要發(fā)1封郵件,我們寫個函數(shù)執(zhí)行即可。考慮到網(wǎng)絡(luò)可能會稍微有點延遲,但是是可以接受的,用戶會乖乖等你的網(wǎng)頁發(fā)完郵件了再關(guān)閉網(wǎng)頁。
假如我們要發(fā)布10封郵件,用一個for循環(huán),循環(huán)10遍執(zhí)行發(fā)郵件操作。這時候,也許10倍的網(wǎng)絡(luò)延遲會讓用戶稍微有點不耐煩,但勉強可以等吧。
假如要發(fā)100封郵件,for循環(huán)100遍,用戶直接揭竿而起,什么破網(wǎng)站!
但實際上,我們很可能有超過1萬的郵件。怎么處理這個延遲的問題?
答案就是用異步。把“發(fā)郵件”這個操作封裝,然后后臺異步地執(zhí)行1萬遍。這樣的話,用戶提交網(wǎng)頁后,他所等待的時間只是“把發(fā)郵件任務(wù)請求推送進隊列里”的時間。而我們的后臺服務(wù)將在用戶看不見的地方跑。而swoole就為我們實現(xiàn)了異步隊列處理及并發(fā)等問題。

如何使用

1、安裝swoole
有兩種安裝方式,一種是先下載安裝包,傳到服務(wù)器(記住一定是linux服務(wù)器)上,然后解壓,然后先cd到服務(wù)器的安裝包的位置,然后執(zhí)行

phpize
./configure
make 
sudo make install

系統(tǒng)就會自動安裝,如果提示phpize不存在的話,就需要安裝一下phpize.
另一種方式直接執(zhí)行

pecl install swoole

用這種方式可以自動下載安裝。
我采取的是第二種方式噢。
安裝完成,需要更改php.ini的配置,將

extension=swoole.so

放在這個配置中,然后重啟nginx。
完成以后執(zhí)行

php -m

查看是否有swoole。有swoole說明安裝成功。
2.啟動server
之前看文檔我一直以為swoole是個框架,需要我們配置然后設(shè)置端口訪問,其實不是,swoole是php的擴展,我們只需要在我們的項目中增加server.php,或者其他的名字,里面的代碼簡單點可以按照文檔上來寫,如下:

//創(chuàng)建Server對象,監(jiān)聽 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501); 

//監(jiān)聽連接進入事件
$serv->on("connect", function ($serv, $fd) {  
    echo "Client: Connect.
";
});

//監(jiān)聽數(shù)據(jù)發(fā)送事件
$serv->on("receive", function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, "Server: ".$data);
});

//監(jiān)聽連接關(guān)閉事件
$serv->on("close", function ($serv, $fd) {
    echo "Client: Close.
";
});

//啟動服務(wù)器
$serv->start(); 

這里就創(chuàng)建了一個TCP服務(wù)器,監(jiān)聽本機9501端口,你也可以改成其他的端口號,只要你的服務(wù)器可以支持這個端口。
服務(wù)器端的server必須運行起來我們才能使用swoole,異步執(zhí)行。如何運行呢?我們cd到你的項目下server.php 所在的文件夾,然后執(zhí)行

php server.php

如何測試成功呢?我們可以關(guān)掉這個客戶端,重新打開連接服務(wù)器,然后執(zhí)行

telnet 127.0.0.1 9501
hello
Server: hello

如果是這樣子說明成功了。
需要注意的是我們?nèi)绻薷牧藄erver.php,必須斷掉之前,然后重新打開。
我這邊寫了一個腳本來斷掉之前的,起名stop.sh

#! /bin/bash
ps -eaf |grep "server.php" | grep -v "grep"| awk "{print $2}"|xargs kill -9

這需要放在和server.php同一個文件夾。
我們需要cd到這個文件夾,執(zhí)行sh stop.sh
3、client
這個是可以在瀏覽器上執(zhí)行的,我們見一個client.php,代碼如下:

$client = new swoole_client(SWOOLE_SOCK_TCP);

//連接到服務(wù)器
if (!$client->connect("127.0.0.1", 9501, 0.5))
{
    die("connect failed.");
}
//向服務(wù)器發(fā)送數(shù)據(jù)
if (!$client->send("hello world"))
{
    die("send failed.");
}
//從服務(wù)器接收數(shù)據(jù)
$data = $client->recv();
if (!$data)
{
    die("recv failed.");
}
echo $data;
//關(guān)閉連接
$client->close();

創(chuàng)建一個TCP的同步客戶端,此客戶端可以用于連接到我們server服務(wù)器。向服務(wù)器端發(fā)送一個hello world字符串,服務(wù)器會返回一個 Server: hello world字符串。
以上是swoole簡單的安裝和連同。
yii2集成swoole
有需要的朋友可以去yii2-swoole這個地址下載,yii2集成swoole的代碼。

參考資料:
關(guān)于異步任務(wù)隊列

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21811.html

相關(guān)文章

  • Swoole學(xué)習(xí)手記()初識Swoole

    摘要:目錄初識創(chuàng)建服務(wù)器上創(chuàng)建服務(wù)器下異步任務(wù)持續(xù)更新中。。。參加工作有一段時間了,偶爾會聽到,對我這種小白粗略看下文檔都會覺得很牛逼。個人理解就是解決這樣應(yīng)用場景的。 目錄 初識Swoole 創(chuàng)建服務(wù)器(上) 創(chuàng)建服務(wù)器(下) 異步任務(wù)task 持續(xù)更新中。。。 參加工作有一段時間了,偶爾會聽到swoole,對我這種PHP小白粗略看下文檔都會覺得很牛逼。由于學(xué)習(xí)成本比較高,自身對網(wǎng)絡(luò)異...

    yeyan1996 評論0 收藏0
  • 后端語言選型淺談

    摘要:再往后來,也就是這種以事件循環(huán)常駐內(nèi)存為特點的后端平臺,姑且能算是第四代后端平臺。 前不久回答了一個關(guān)于后端語言選型的問題,寫的回答也讓筆者有了很多感觸,因此在這里談?wù)撓伦约簩蠖苏Z言選型的心得體會,姑且算是拋磚引玉,希望大家能分享各自的心得。 后端語言發(fā)展歷史 Web 后端語言的興起是從靜態(tài)網(wǎng)頁向動態(tài)網(wǎng)頁的發(fā)展所產(chǎn)生的,最早的動態(tài)頁面技術(shù)就是 CGI 技術(shù),將客戶端的輸入交給 CGI...

    xcc3641 評論0 收藏0
  • 后端語言選型淺談

    摘要:再往后來,也就是這種以事件循環(huán)常駐內(nèi)存為特點的后端平臺,姑且能算是第四代后端平臺。 前不久回答了一個關(guān)于后端語言選型的問題,寫的回答也讓筆者有了很多感觸,因此在這里談?wù)撓伦约簩蠖苏Z言選型的心得體會,姑且算是拋磚引玉,希望大家能分享各自的心得。 后端語言發(fā)展歷史 Web 后端語言的興起是從靜態(tài)網(wǎng)頁向動態(tài)網(wǎng)頁的發(fā)展所產(chǎn)生的,最早的動態(tài)頁面技術(shù)就是 CGI 技術(shù),將客戶端的輸入交給 CGI...

    alighters 評論0 收藏0

發(fā)表評論

0條評論

huashiou

|高級講師

TA的文章

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