欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年02月21日 11:06:57   作者:懷素真  
這篇文章主要介紹了PHP Beanstalkd消息隊(duì)列的安裝與使用方法,結(jié)合實(shí)例形式詳細(xì)分析了PHP Beanstalkd消息隊(duì)列的基本功能、原理、安裝、使用方法及相關(guān)操作注意事項(xià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類

首先安裝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)容感興趣的讀者可查看本站專題:《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ì)有所幫助。

相關(guān)文章

  • PHP中的self關(guān)鍵字詳解

    PHP中的self關(guān)鍵字詳解

    這篇文章主要給大家介紹了關(guān)于PHP中self關(guān)鍵字的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法

    php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法

    這篇文章主要介紹了php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法,涉及php通過(guò)curl操作遠(yuǎn)程圖片的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • PHP中register_shutdown_function函數(shù)的基礎(chǔ)介紹與用法詳解

    PHP中register_shutdown_function函數(shù)的基礎(chǔ)介紹與用法詳解

    php中的異常捕獲沒(méi)有java的強(qiáng)大,有些情況下,需要知道某段php程序業(yè)務(wù)是否正常執(zhí)行完,可以用register_shutdown_function函數(shù)來(lái)輔助實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于PHP中register_shutdown_function函數(shù)的基礎(chǔ)介紹與用法的相關(guān)資料,需要的朋友可以參考。
    2017-11-11
  • php實(shí)現(xiàn)簽到功能的方法實(shí)例分析

    php實(shí)現(xiàn)簽到功能的方法實(shí)例分析

    這篇文章主要介紹了php實(shí)現(xiàn)簽到功能的方法,結(jié)合實(shí)例形式分析了php基于數(shù)據(jù)庫(kù)及時(shí)間判斷操作實(shí)現(xiàn)簽到功能的相關(guān)技巧,需要的朋友可以參考下
    2017-12-12
  • PHP開(kāi)發(fā)不能違背的安全規(guī)則 過(guò)濾用戶輸入

    PHP開(kāi)發(fā)不能違背的安全規(guī)則 過(guò)濾用戶輸入

    作為PHP程序員,特別是新手,對(duì)于互聯(lián)網(wǎng)的險(xiǎn)惡總是知道的太少,對(duì)于外部的入侵有很多時(shí)候是素手無(wú)策的,他們根本不知道黑客是如何入侵的、提交入侵、上傳漏洞、sql 注入、跨腳本攻擊等等。
    2011-05-05
  • 幾行代碼輕松實(shí)現(xiàn)PHP文件打包下載zip

    幾行代碼輕松實(shí)現(xiàn)PHP文件打包下載zip

    這篇文章主要為大家詳細(xì)介紹了使用PHP自帶zlib函數(shù) ,輕松實(shí)現(xiàn)PHP文件打包下載zip,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • php面向?qū)ο笾瓷涔δ芘c用法分析

    php面向?qū)ο笾瓷涔δ芘c用法分析

    這篇文章主要介紹了php面向?qū)ο笾瓷涔δ芘c用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了php5面向?qū)ο蠓瓷涞母拍罴熬唧w用法,需要的朋友可以參考下
    2017-03-03
  • PHP獲取網(wǎng)站域名和地址的代碼

    PHP獲取網(wǎng)站域名和地址的代碼

    從phpmyadmin中提取的函數(shù)
    2008-08-08
  • php寫(xiě)入數(shù)據(jù)到CSV文件的方法

    php寫(xiě)入數(shù)據(jù)到CSV文件的方法

    這篇文章主要介紹了php寫(xiě)入數(shù)據(jù)到CSV文件的方法,涉及php操作csv文件的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 延長(zhǎng)phpmyadmin登錄時(shí)間的方法

    延長(zhǎng)phpmyadmin登錄時(shí)間的方法

    新安裝的phpmyadmin默認(rèn)是cookie模式,如果閑置十幾分鐘不操作的話,就會(huì)要求重新登錄。
    2011-02-02

最新評(píng)論