首页 PHP 库 其它类库 Beanstalkd的PHP库
Beanstalkd的PHP客户端库

Beanstalk,一个高性能、轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook Causes应用。

后来开源,现在有PostRank大规模部署和使用,每天处理百万级任务。Beanstalkd是典型的类Memcached设计,协议和使用方式都是同样的风格,所以使用过memcached的用户会觉得Beanstalkd似曾相识。

高性能离不开异步,异步离不开队列,而其内部都是Producer-Comsumer模式的原理。

Beanstalkd的PHP客户端库

#!/usr/bin/env php
<?php
define('BASE_DIR', realpath(__DIR__.'/..'));
define('PHAR_FILENAME', 'pheanstalk.phar');
define('PHAR_FULLPATH', BASE_DIR.'/'.PHAR_FILENAME);
// ----------------------------------------
reexecute_if_phar_readonly($argv);
delete_existing_pheanstalk_phar();
build_pheanstalk_phar();
verify_pheanstalk_phar();
exit(0);
// ----------------------------------------
// See: http://www.php.net/manual/en/phar.configuration.php#ini.phar.readonly
function reexecute_if_phar_readonly($argv)
{
    if (ini_get('phar.readonly') && !in_array('--ignore-readonly', $argv)) {
        $command = sprintf(
            'php -d phar.readonly=0 %s --ignore-readonly',
            implode($argv, ' ')
        );
        echo "Phar configured readonly in php.ini; attempting to re-execute:\n";
        echo "$command\n";
        passthru($command, $exitStatus);
        exit($exitStatus);
    }
}
function delete_existing_pheanstalk_phar()
{
    if (file_exists(PHAR_FULLPATH)) {
        printf("- Deleting existing %s\n", PHAR_FILENAME);
        unlink(PHAR_FULLPATH);
    }
}
function build_pheanstalk_phar()
{
    printf("- Building %s from %s\n", PHAR_FILENAME, BASE_DIR);
    $phar = new Phar(PHAR_FULLPATH);
    $phar->buildFromDirectory(BASE_DIR);
    $phar->setStub(
        $phar->createDefaultStub('vendor/autoload.php')
    );
}
function verify_pheanstalk_phar()
{
    $phar = new Phar(PHAR_FULLPATH);
    printf("- %s built with %d files.\n", PHAR_FILENAME, $phar->count());
}


免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

在 Joomla 中连接第三方 PHP 库 在 Joomla 中连接第三方 PHP 库

28 Dec 2024

PHP 库很方便,因为可以从应用程序中的任何位置访问它们:从插件、组件模型、模块等。如果有人已经解决了类似的问题并将其设计为库(甚至更新了它),那就有意义了

PHP可以使用PDO创建数据库吗? PHP可以使用PDO创建数据库吗?

08 Nov 2024

在 PHP 中使用 PDO 创建数据库在 PHP 中,PDO(PHP 数据对象)是广泛使用的与数据库交互的扩展。它的其中之一...

在access数据库对象中,体现数据库设计目的的对象是什么 在access数据库对象中,体现数据库设计目的的对象是什么

01 Jul 2020

在access数据库对象中,体现数据库设计目的的对象是表。access数据库由七种对象组成,分别是表、查询、窗体、报表、宏、页和模块。表是数据库的基本对象,是创建其它五种对象的基础。

如何解决外部库中的类名冲突? 如何解决外部库中的类名冲突?

08 Jan 2025

解决外部库中的类名冲突在使用外部库时,开发人员可能会遇到由于类名冲突...

重点介绍PHP数据库查询语句 重点介绍PHP数据库查询语句

06 Apr 2023

PHP作为一种流行的服务器端脚本语言,可以汇集许多不同的数据类型和数据库。尤其是在web应用程序的开发中,它经常需要访问数据库来检索和操作数据。本文将重点介绍PHP数据库查询语句。一、什么是数据库查询语句在对数据库进行操作的过程中,我们常常需要从数据库中获取数据。这时,我们需要使用查询语句。数据库查询(SQL Query)是从数据库中检索数据的指令集。SQL是Structure

如何最好地访问 C# 类库中的配置设置? 如何最好地访问 C# 类库中的配置设置?

19 Jan 2025

从类库中的配置文件读取设置开发 C# 类库时,从配置文件中检索设置,例如...

See all articles