承接 slc/beanstalkmc 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

slc/beanstalkmc

Composer 安装命令:

composer require slc/beanstalkmc

包简介

Beanstalk multi connection library

README 文档

README

Beanstalk Multi Connection PHP Library

This library is for the beanstalkd message queue (http://kr.github.io/beanstalkd/) and was designed to handle huge amount of messages within high-latency networks where the message ping-pong between the receipient and queue server slows down the processing dramatically.

To avoid that we built a library which makes use of hundred or even thousands of connections to the message queue server to be able retrieve all messages as fast as possible.

We use this library in a productive environment with a throughput of thousands of messages per second.

Create instance and connect to beanstalk

$beanstalk = new \slc\beanstalkmc\Beanstalk(array(
	'Host' => $beanstalk_host,
	'Port' => $beanstalk_port,
	'Connections' => 1
));

Publish message / job

$beanstalk->publishMessage(
	$message,
    $tube = "DefaultTube",
    $priority = 0,
    $delay = 0,
    $timeToRun = 600
);

Watch tube

$beanstalk->watch($tube);

Start reserving jobs on all open connections

$beanstalk->startReserve();

Fetching jobs as soon as they come in

This is the most important part, all opened connection will checked permanently for new data, newly received data will be putted into an array which will be returned after all open and non-blocking connections were handled.

while(is_array($jobs = $beanstalk->fetchReserved())) {
	foreach($jobs AS $job) {
         // $job is a Beanstalk_Job instance, $job->getData() gets the message content
     
         // delete job
         $job->delete();
         // or release job with $job->release();
	}
}

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-01-15