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

主頁(yè) > 知識(shí)庫(kù) > PHP Beanstalkd消息隊(duì)列的安裝與使用方法實(shí)例詳解

PHP Beanstalkd消息隊(duì)列的安裝與使用方法實(shí)例詳解

熱門(mén)標(biāo)簽:騰訊外呼管理系統(tǒng) 山西回?fù)芡夂粝到y(tǒng) 青島語(yǔ)音外呼系統(tǒng)招商 揚(yáng)州地圖標(biāo)注app 百應(yīng)電話機(jī)器人服務(wù) 河南電銷(xiāo)卡外呼系統(tǒng)哪家強(qiáng) 山西探意電話機(jī)器人 昭通辦理400電話 岳陽(yáng)外呼型呼叫中心系統(tǒng)在哪里

本文實(shí)例講述了PHP Beanstalkd消息隊(duì)列的安裝與使用方法。分享給大家供大家參考,具體如下:

一、Beanstalkd是什么?

Beanstalkd是一個(gè)高性能,輕量級(jí)的分布式內(nèi)存隊(duì)列

二、Beanstalkd特性

1、支持優(yōu)先級(jí)(支持任務(wù)插隊(duì))
2、延遲(實(shí)現(xiàn)定時(shí)任務(wù))
3、持久化(定時(shí)把內(nèi)存中的數(shù)據(jù)刷到binlog日志)
4、預(yù)留(把任務(wù)設(shè)置成預(yù)留,消費(fèi)者無(wú)法取出任務(wù),等某個(gè)合適時(shí)機(jī)再拿出來(lái)處理)
5、任務(wù)超時(shí)重發(fā)(消費(fèi)者必須在指定時(shí)間內(nèi)處理任務(wù),如果沒(méi)有則認(rèn)為任務(wù)失敗,重新進(jìn)入隊(duì)列)

三、Beanstalkd核心元素

生產(chǎn)者 -> 管道(tube) -> 任務(wù)(job) -> 消費(fèi)者

Beanstalkd可以創(chuàng)建多個(gè)管道,管道里面存了很多任務(wù),消費(fèi)者從管道中取出任務(wù)進(jìn)行處理。

四、任務(wù)job狀態(tài)

delayed 延遲狀態(tài)
ready 準(zhǔn)備好狀態(tài)
reserved 消費(fèi)者把任務(wù)讀出來(lái),處理時(shí)
buried 預(yù)留狀態(tài)
delete 刪除狀態(tài)

五、安裝Beanstalkd

http://kr.github.io/beanstalkd/download.html

下載beanstalkd-1.10.tar.gz

> tar -xf beanstalkd-1.10.tar.gz
> cd beanstalkd-1.10
> make

查看beanstalkd參數(shù)信息

> ./beanstalkd -h

啟動(dòng)beanstalkd

> ./beanstalkd -l 127.0.0.1 -p 11300 -b /data/beanstalkd/binlog 

-b表示開(kāi)啟binlog,斷電后重啟自動(dòng)恢復(fù)任務(wù)  

六、下載Pheanstalk類(lèi)

首先安裝composer

> curl -sS https://getcomposer.org/installer | php
> mv composer.phar /usr/local/bin/composer
> composer require pda/pheanstalk

 編寫(xiě)一個(gè)簡(jiǎn)單腳本查看信息

?php
require './vendor/autoload.php';

use Pheanstalk\Pheanstalk;

$p = new Pheanstalk('127.0.0.1', 11300);
//查看beanstalkd當(dāng)前的狀態(tài)信息
var_dump($p->stats());

七、Pheanstalk使用方法

維護(hù)方法

stats() 查看狀態(tài)方法
listTubes() 目前存在的管道
listTubesWatched() 目前監(jiān)聽(tīng)的管道
statsTube() 管道的狀態(tài)
useTube() 指定使用的管道
statsJob() 查看任務(wù)的詳細(xì)信息
peek() 通過(guò)任務(wù)ID獲取任務(wù)

生產(chǎn)者方法

putInTube() 往管道中寫(xiě)入數(shù)據(jù)
put() 配合useTube()使用

消費(fèi)者方法

watch() 監(jiān)聽(tīng)管道,可以同時(shí)監(jiān)聽(tīng)多個(gè)管道
ignore() 不監(jiān)聽(tīng)管道
reserve() 以阻塞方式監(jiān)聽(tīng)管道,獲取任務(wù)
reserveFromTube() 
release() 把任務(wù)重新放回管道
bury() 把任務(wù)預(yù)留
peekBuried() 把預(yù)留任務(wù)讀取出來(lái)
kickJob() 把buried狀態(tài)的任務(wù)設(shè)置成ready
kick() 批量把buried狀態(tài)的任務(wù)設(shè)置成ready
peekReady() 把準(zhǔn)備好的任務(wù)讀取出來(lái)
peekDelayed() 把延遲的任務(wù)讀取出來(lái)
pauseTube() 給管道設(shè)置延遲
resumeTube() 取消管道延遲
touch() 讓任務(wù)重新計(jì)算ttr時(shí)間,給任務(wù)續(xù)命

生產(chǎn)者producer.php代碼如下:

?php
require './vendor/autoload.php';

use Pheanstalk\Pheanstalk;

//創(chuàng)建一個(gè)Pheanstalk對(duì)象
$p = new Pheanstalk('192.168.1.222', 11300);

$data = array(
  'id' => 1,
  'name' => 'test',
);

//向userReg管道中添加任務(wù),返回任務(wù)ID
//put()方法有四個(gè)參數(shù)
//第一個(gè)任務(wù)的數(shù)據(jù)
//第二個(gè)任務(wù)的優(yōu)先級(jí),值越小,越先處理
//第三個(gè)任務(wù)的延遲
//第四個(gè)任務(wù)的ttr超時(shí)時(shí)間
$id = $p->useTube('userReg')->put(json_encode($data));
//獲取任務(wù)
$job = $p->peek($id);
//查看任務(wù)狀態(tài)
print_r($p->statsJob($job));

消費(fèi)者consumer.php代碼如下:

?php
require './vendor/autoload.php';

use Pheanstalk\Pheanstalk;

//創(chuàng)建一個(gè)Pheanstalk對(duì)象
$p = new Pheanstalk('192.168.1.222', 11300);

//監(jiān)聽(tīng)userReg管道,忽略default管道
$job = $p->watch('userReg')->ignore('default')->reserve();

$data = json_decode($job->getData());
//打印任務(wù)中的數(shù)據(jù)
print_r($data);

//最后刪除任務(wù),表示任務(wù)處理完成
$p->delete($job);

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

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

您可能感興趣的文章:
  • PHP高級(jí)編程之消息隊(duì)列原理與實(shí)現(xiàn)方法詳解
  • PHP PDO和消息隊(duì)列的個(gè)人理解與應(yīng)用實(shí)例分析
  • php+redis實(shí)現(xiàn)消息隊(duì)列功能示例
  • PHP加MySQL消息隊(duì)列深入理解

標(biāo)簽:河南 唐山 黃山 南通 隴南 平頂山 通遼 武漢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP Beanstalkd消息隊(duì)列的安裝與使用方法實(shí)例詳解》,本文關(guān)鍵詞  PHP,Beanstalkd,消息,隊(duì)列,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP Beanstalkd消息隊(duì)列的安裝與使用方法實(shí)例詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PHP Beanstalkd消息隊(duì)列的安裝與使用方法實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 利津县| 拉孜县| 中西区| 山东省| 方正县| 苍梧县| 通河县| 延边| 林芝县| 元江| 长岛县| 泾源县| 曲周县| 谢通门县| 定远县| 鹤山市| 浦城县| 星子县| 盘山县| 垫江县| 远安县| 普兰店市| 隆回县| 兴仁县| 奈曼旗| 乾安县| 巴里| 寿光市| 阿克| 横山县| 囊谦县| 东至县| 泰兴市| 洛隆县| 江油市| 上蔡县| 简阳市| 师宗县| 磐安县| 西乡县| 永仁县|