PHP Beanstalkd 메시지 큐 의 설치 및 사용 방법 인 스 턴 스 상세 설명

이 사례 는 PHP Beanstalkd 메시지 큐 의 설치 와 사용 방법 을 설명 합 니 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.Beanstalkd 는 무엇 입 니까?
Beanstalkd 는 고성능,경량급 분포 식 메모리 큐 입 니 다.
2.Beanstalkd 특성
1.우선 순위 지원(퀘 스 트 새치기 지원)
2.지연(정시 퀘 스 트 실현)
3.지속 화(정시 에 메모리 의 데 이 터 를 binlog 로그 에 저장)
4.예약(임 무 를 예약 으로 설정 하고 소비자 가 임 무 를 꺼 낼 수 없 으 며 적당 한 시기 에 다시 꺼 내 처리한다)
5.퀘 스 트 시간 초과 재발 급(소비 자 는 지 정 된 시간 내 에 퀘 스 트 를 처리 해 야 하 며,없 으 면 퀘 스 트 가 실패 했다 고 생각 하고 다시 대기 열 에 들 어가 야 합 니 다)
3.Beanstalkd 핵심 요소
생산자->파이프(튜브)->퀘 스 트(job)->소비자
Beanstalkd 는 여러 개의 파 이 프 를 만 들 수 있 고 파이프 안에 많은 작업 이 저장 되 어 있 으 며 소비자 들 은 파이프 에서 임 무 를 꺼 내 처리 합 니 다.
4.퀘 스 트 job 상태
지연 상태
준비 상태
reserved 소비자 가 임 무 를 읽 고 처리 할 때
buried 예약 상태
삭제 상태

5.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 매개 변수 정보 보기

> ./beanstalkd -h
beanstalkd 시작

> ./beanstalkd -l 127.0.0.1 -p 11300 -b /data/beanstalkd/binlog &
-b binlog 오픈,단전 후 자동 복구 작업 재 개
6.Pheanstalk 클래스 다운로드
우선 composer 를 설치 합 니 다.

> curl -sS https://getcomposer.org/installer | php
> mv composer.phar /usr/local/bin/composer
> composer require pda/pheanstalk
 간단 한 스 크 립 트 를 만들어 정 보 를 봅 니 다.

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

use Pheanstalk\Pheanstalk;

$p = new Pheanstalk('127.0.0.1', 11300);
//  beanstalkd       
var_dump($p->stats());
7.Pheanstalk 사용 방법
유지 보수 방법

stats()       
listTubes()        
listTubesWatched()        
statsTube()      
useTube()        
statsJob()          
peek()     ID    
생산자 방법

putInTube()         
put()   useTube()  
소비자 방법

watch()     ,          
ignore()      
reserve()          ,    
reserveFromTube() 
release()          
bury()      
peekBuried()          
kickJob()  buried        ready
kick()    buried        ready
peekReady()            
peekDelayed()           
pauseTube()        
resumeTube()       
touch()        ttr  ,     
생산자 producer.php 코드 는 다음 과 같 습 니 다.

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

use Pheanstalk\Pheanstalk;

//    Pheanstalk  
$p = new Pheanstalk('192.168.1.222', 11300);

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

// userReg       ,    ID
//put()       
//        
//         ,   ,    
//        
//      ttr    
$id = $p->useTube('userReg')->put(json_encode($data));
//    
$job = $p->peek($id);
//      
print_r($p->statsJob($job));
소비자 consumer.php 코드 는 다음 과 같 습 니 다.

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

use Pheanstalk\Pheanstalk;

//    Pheanstalk  
$p = new Pheanstalk('192.168.1.222', 11300);

//  userReg  ,  default  
$job = $p->watch('userReg')->ignore('default')->reserve();

$data = json_decode($job->getData());
//        
print_r($data);

//      ,        
$p->delete($job);
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기