婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php使用gearman進行任務(wù)分發(fā)操作實例詳解

php使用gearman進行任務(wù)分發(fā)操作實例詳解

熱門標簽:百應(yīng)電話機器人服務(wù) 青島語音外呼系統(tǒng)招商 昭通辦理400電話 揚州地圖標注app 岳陽外呼型呼叫中心系統(tǒng)在哪里 騰訊外呼管理系統(tǒng) 山西探意電話機器人 河南電銷卡外呼系統(tǒng)哪家強 山西回撥外呼系統(tǒng)

本文實例講述了php使用gearman進行任務(wù)分發(fā)操作。分享給大家供大家參考,具體如下:

一、安裝gearman

下載gearman源碼包

https://launchpad.net/gearmand/+download

如: gearmand-1.1.12.tar.gz

下載php的gearman擴展包

http://pecl.php.net/package/gearman

如: gearman-1.1.2.tgz

安裝gearman

> yum install boost-devel gperf libevent-devel libuuid-devel
> tar xf gearmand-1.1.12.tar.gz
> cd gearmand-1.1.12
> ./configure
> make  make install

安裝gearman的php擴展(建議php版本不要過高,因為php7的gearman擴展目前還沒有出來)

> yum install autoconf
> tar xf gearman-1.1.2.tgz
> cd gearman-1.1.2
> /data/php56/bin/phpize
> ./configure --with-php-config=/data/php56/bin/php-config
> make  make install

修改php.ini

> vi /data/php56/lib/php.ini

添加如下兩項

extension_dir=/data/php56/lib/php/extensions/no-debug-zts-20131226/
extension=gearman.so

查看擴展

> /data/php56/bin/php -m

二、簡單的使用gearman

gearman中請求的處理過程一般涉及三種角色:client->job->worker
其中client是請求的發(fā)起者
job是請求的調(diào)度者,用于把客戶的請求分發(fā)到不同的worker上進行工作
worker是請求的處理者

比如這里我們要處理client向job發(fā)送一個請求,來計算兩個數(shù)之和,job負責(zé)調(diào)度worker來具體實現(xiàn)計算兩數(shù)之和。

首先我們編寫client.php

?php
//創(chuàng)建一個客戶端
$client = new GearmanClient();
//添加一個job服務(wù)
$client->addServer('127.0.0.1', 4730);
//doNormal是同步的,等待worker處理完成返回結(jié)果
//建議不要使用do()了
$ret = $client->doNormal('sum', serialize(array(10, 10)));

if($ret) {
  echo '計算結(jié)果:', $ret, "\n";
}

再編寫worker.php

?php
//創(chuàng)建一個worker
$worker = new GearmanWorker();
//添加一個job服務(wù)
$worker->addServer('127.0.0.1', 4730);
//注冊一個回調(diào)函數(shù),用于業(yè)務(wù)處理
$worker->addFunction('sum', function($job) {
  //workload()獲取客戶端發(fā)送來的序列化數(shù)據(jù)
  $data = unserialize($job->workload());

  return $data[0] + $data[1];
});

//死循環(huán)
while(true) {
  //等待job提交的任務(wù)
  $ret = $worker->work();
  if ($worker->returnCode() != GEARMAN_SUCCESS) {
    break;
  }
}

我們先啟動gearmand服務(wù)

> mkdir -p /usr/local/var/log
> gearmand -d

運行worker文件

> /data/php56/bin/php /data/worker.php

再運行client文件

> /data/php56/bin/php /data/client.php

結(jié)果如下:

三、gearman異步的處理任務(wù)

這里我們client向job發(fā)送一個發(fā)送郵件的請求,不等待請求完成,繼續(xù)向下執(zhí)行。

client.php代碼如下:

?php
//創(chuàng)建一個客戶端
$client = new GearmanClient();
//添加一個job服務(wù)
$client->addServer('127.0.0.1', 4730);
//doBackground異步,返回提交任務(wù)的句柄
$ret = $client->doBackground('sendEmail', json_encode(array(
  'email' => 'test@qq.com',
  'title' => '測試異步',
  'body' => '異步執(zhí)行好牛B的樣子',
)));

//繼續(xù)執(zhí)行下面的代碼
echo "我的內(nèi)心毫無波動,甚至還想笑\n";

do {
  sleep(1);

  //獲取任務(wù)句柄的狀態(tài)
  //jobStatus返回的是一個數(shù)組
  //第一個,表示工作是否已經(jīng)知道
  //第二個,工作是否在運行
  //第三和第四,分別對應(yīng)完成百分比的分子與分母
  $status = $client->jobStatus($ret);
  
  echo "完成情況:{$status[2]}/{$status[3]}\n";

  if(!$status[1]) {
    break;
  }
} while(true);

worker.php代碼如下:

?php
//創(chuàng)建一個worker
$worker = new GearmanWorker();
//添加一個job服務(wù)
$worker->addServer('127.0.0.1', 4730);
//注冊一個回調(diào)函數(shù),用于業(yè)務(wù)處理
$worker->addFunction('sendEmail', function($job) {
  //workload()獲取客戶端發(fā)送來的序列化數(shù)據(jù)
  $data = json_decode($job->workload(), true);
  //模擬發(fā)送郵件所用時間
  sleep(6);
  echo "發(fā)送{$data['email']}郵件成功\n";
});

//死循環(huán)
//等待job提交的任務(wù)
while($worker->work());  

結(jié)果如下:

四、gearman并行的執(zhí)行多個任務(wù)

我們?nèi)绾尾⑿械挠嬎銉蓚€數(shù)的累加和? 通過addTask添加多個任務(wù)到隊列,然后進行并行計算。

client.php代碼如下:

?php
//創(chuàng)建一個客戶端
$client = new GearmanClient();
//添加一個job服務(wù)
$client->addServer('127.0.0.1', 4730);
//設(shè)置任務(wù)完成時的回調(diào)函數(shù)
$client->setCompleteCallback(function($task) {
  //獲取由worker返回的數(shù)據(jù)
  echo $task->data(), "\n";
});

//計算1到500的累加和
//添加五個任務(wù)到隊列
$client->addTask('sum', json_encode(array(1, 100)));
$client->addTask('sum', json_encode(array(100, 200)));
$client->addTask('sum', json_encode(array(200, 300)));
$client->addTask('sum', json_encode(array(300, 400)));
$client->addTask('sum', json_encode(array(400, 500)));

//運行隊列中的任務(wù),do系列不需要runTask()
$client->runTasks();

worker.php代碼如下:

?php
//創(chuàng)建一個worker
$worker = new GearmanWorker();
//添加一個job服務(wù)
$worker->addServer('127.0.0.1', 4730);
//注冊一個回調(diào)函數(shù),用于業(yè)務(wù)處理
$worker->addFunction('sum', function($job) {
  //workload()獲取客戶端發(fā)送來的序列化數(shù)據(jù)
  $data = json_decode($job->workload(), true);
  sleep(1);
  $sum = 0;
  for($ix = $data[0]; $ix  $data[1]; ++$ix) {
    $sum += $ix;
  }
  return $sum;
});

//死循環(huán)
//等待job提交的任務(wù)
while($worker->work());

我們開啟5個worker工作進程,當(dāng)運行客戶端請求時,5個計算任務(wù)幾乎是同時返回結(jié)果。

結(jié)果如下:

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP進程與線程操作技巧總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • python基于json文件實現(xiàn)的gearman任務(wù)自動重啟代碼實例
  • gearman中worker常駐后臺,導(dǎo)致MySQL server has gone away的解決方法
  • PHP使用gearman進行異步的郵件或短信發(fā)送操作詳解
  • gearman + mysql方式實現(xiàn)持久化操作示例
  • gearman管理工具GearmanManager的安裝與php使用方法示例
  • PHP并發(fā)多進程處理利器Gearman使用介紹
  • Gearman::XS在Centos下的編譯安裝方法
  • gearman隊列持久化引發(fā)的問題及解決方法
  • gearman的安裝啟動及python API使用實例
  • rhel5.7下安裝gearmand及啟動的方法
  • gearman中任務(wù)的優(yōu)先級和返回狀態(tài)實例分析

標簽:宜賓 黃南 鎮(zhèn)江 南陽 婁底 銅川 湛江 寶雞

巨人網(wǎng)絡(luò)通訊聲明:本文標題《php使用gearman進行任務(wù)分發(fā)操作實例詳解》,本文關(guān)鍵詞  php,使用,gearman,進行,任務(wù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php使用gearman進行任務(wù)分發(fā)操作實例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于php使用gearman進行任務(wù)分發(fā)操作實例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色婷婷激情综合| 91在线视频官网| 91精品蜜臀在线一区尤物| 亚洲成av人片在www色猫咪| 国内精品视频666| 1024成人网色www| 欧美美女bb生活片| 波多野结衣一区二区三区| 亚洲国产wwwccc36天堂| 精品国产伦一区二区三区免费| 白白色亚洲国产精品| 免费观看久久久4p| 亚洲免费av高清| 精品剧情在线观看| 欧美亚洲一区二区在线| 成人少妇影院yyyy| 精品一区二区三区免费毛片爱| 亚洲精品国产一区二区精华液 | 成人av集中营| 国产又黄又大久久| 舔着乳尖日韩一区| 亚洲欧洲在线观看av| 久久综合成人精品亚洲另类欧美 | 国产精品第13页| 在线观看av一区二区| 亚洲精品自拍动漫在线| 国产欧美日韩亚州综合 | 国产乱妇无码大片在线观看| 日韩激情中文字幕| 亚洲人成精品久久久久| 国产精品丝袜一区| 国产欧美一区视频| 久久夜色精品国产噜噜av| 日韩一区二区三区视频| 在线电影院国产精品| 欧美日韩电影在线| 欧美区在线观看| 欧美日韩一区成人| 欧美精品日韩一本| 欧美一区午夜精品| 欧美成人video| 精品国产91乱码一区二区三区| 欧美丰满嫩嫩电影| 日韩视频在线你懂得| 精品国产免费人成电影在线观看四季| 日韩小视频在线观看专区| 久久综合久久综合亚洲| 中文字幕一区二区在线观看 | 欧美午夜电影网| 欧美日韩色一区| 久久影院电视剧免费观看| 久久夜色精品一区| 国产精品乱码人人做人人爱| 亚洲女同一区二区| 手机精品视频在线观看| 久久草av在线| 99精品视频在线观看免费| 欧美色爱综合网| 精品999在线播放| 亚洲美女区一区| 久久av老司机精品网站导航| 99视频精品在线| 日韩三级电影网址| 亚洲猫色日本管| 久久99精品久久久久久久久久久久 | 色综合中文字幕国产| 亚洲精选视频在线| 麻豆精品一二三| 91久久精品国产91性色tv| 久久久九九九九| 国产福利精品一区二区| 亚洲综合免费观看高清完整版| 色哟哟一区二区在线观看| av动漫一区二区| 国产精品乱人伦中文| 91农村精品一区二区在线| 亚洲自拍偷拍综合| 懂色av一区二区夜夜嗨| 精品国产一区二区三区不卡 | 99久久精品国产一区二区三区| 欧洲色大大久久| 欧美精品一区二区精品网| 亚洲一卡二卡三卡四卡五卡| 高清成人在线观看| 久久女同互慰一区二区三区| 亚洲国产综合色| 91国偷自产一区二区使用方法| 国产精品久久久久一区| 成人在线一区二区三区| 国产欧美一区二区三区在线老狼| 国产成人鲁色资源国产91色综| 国产精品久久久久久久久晋中 | 成人午夜视频免费看| 26uuu国产在线精品一区二区| 韩国成人在线视频| 精品欧美乱码久久久久久 | 一二三四社区欧美黄| 色综合色狠狠天天综合色| 亚洲欧美激情一区二区| 精品视频免费在线| 精品亚洲aⅴ乱码一区二区三区| 中文字幕精品三区| 欧美乱熟臀69xxxxxx| 国产高清在线精品| 久久综合中文字幕| 免费人成精品欧美精品| 亚洲精品国产精华液| 亚洲欧美在线另类| 国产精品久久久久久久久果冻传媒| 久久精品夜色噜噜亚洲aⅴ| 91免费视频大全| 国产福利不卡视频| 国产美女一区二区| 色久综合一二码| 精品一区二区三区免费播放| 18成人在线观看| 精品国产在天天线2019| 欧日韩精品视频| 国产.精品.日韩.另类.中文.在线.播放| 亚洲色图一区二区三区| 久久综合久久综合久久| 99精品欧美一区二区三区综合在线| 亚洲一区二区三区爽爽爽爽爽| 日韩精品在线看片z| 色综合久久88色综合天天| 成人免费视频一区| 波多野结衣一区二区三区| 国产经典欧美精品| 狠狠色狠狠色综合| 日本不卡一区二区三区| 亚洲一区在线观看免费| 亚洲人123区| 欧美国产欧美综合| 26uuu精品一区二区在线观看| 777欧美精品| 欧美日韩国产高清一区| 一本到不卡免费一区二区| www.亚洲人| 成人永久aaa| 色综合网站在线| 91日韩在线专区| 一本色道久久综合亚洲91| 91捆绑美女网站| 99久久精品久久久久久清纯| 7777精品伊人久久久大香线蕉 | 一二三四区精品视频| 亚洲国产成人av网| 韩国av一区二区三区| av成人老司机| 日韩一二三区不卡| 亚洲乱码中文字幕| 麻豆久久久久久| 一本久道久久综合中文字幕| 日韩一区二区高清| 亚洲免费色视频| 国产精品一色哟哟哟| 欧美一级二级在线观看| 欧美日韩一区二区欧美激情| 6080午夜不卡| 26uuu国产一区二区三区| 综合婷婷亚洲小说| 偷拍一区二区三区| 懂色av一区二区在线播放| 欧美高清一级片在线| 精品国内二区三区| 亚洲精品乱码久久久久久| 久久99精品国产麻豆婷婷| 99久久99久久久精品齐齐| 91麻豆精品国产自产在线观看一区| 精品一区二区三区的国产在线播放| 亚洲欧美成人一区二区三区| 国产一区二区三区国产| 日本韩国精品一区二区在线观看| av不卡一区二区三区| 亚洲蜜臀av乱码久久精品| 欧美日韩亚州综合| 日本不卡一区二区三区| 国产日韩欧美高清在线| 91麻豆成人久久精品二区三区| 亚洲高清免费在线| 7777精品伊人久久久大香线蕉超级流畅 | 日韩欧美一区二区视频| 欧美日韩成人高清| 日韩精品中文字幕在线一区| 9191成人精品久久| 日韩欧美区一区二| 欧美韩国日本不卡| 国产网站一区二区三区| 亚洲va欧美va国产va天堂影院| 亚洲男同性视频| 亚洲国产精品影院| 亚洲国产日韩综合久久精品| 久久精品亚洲一区二区三区浴池 | 中文字幕 久热精品 视频在线 | 97国产一区二区| 亚洲一区二区三区美女| 久久婷婷成人综合色| 欧美日韩大陆在线| 国产99一区视频免费| 水野朝阳av一区二区三区|