搜索
首页PHP 库Other librariesBeanstalkd的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

相关文章

为什么我的 JNI 项目找不到依赖库?为什么我的 JNI 项目找不到依赖库?

21Nov2024

解决 UnsatisfiedLinkError: Can't Find Dependent Libraries in JNI Projects当开发 Java Native Interface (JNI) 项目时,您可能...

PHP中MongoDB数据库的操作PHP中MongoDB数据库的操作

08Jun2018

这篇文章主要介绍了PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例,需要的朋友可以参考下

PDO 或 MySQLi:哪个 PHP 数据库库适合您的项目?PDO 或 MySQLi:哪个 PHP 数据库库适合您的项目?

26Dec2024

PDO 与 MySQLi:全面比较使用 MySQLi 和 PDO 进行数据库交互之间的争论多年来一直困扰着开发人员......

PHP编写数据库报表的方法PHP编写数据库报表的方法

16May2023

PHP编写数据库报表的方法数据库报表是一种常见的数据分析工具。通过将数据库中的数据按照特定的格式展示出来,可以让用户更加直观地了解数据之间的关系和趋势。PHP作为一种常见的Web编程语言,也可以用来编写数据库报表。在本文中,我们将介绍一些PHP编写数据库报表的方法。使用PHP连接数据库首先,我们需要使用PHP连接数据库。在PHP中,可以使用mysqli或PD

PHP编写数据库事务的方法PHP编写数据库事务的方法

16May2023

PHP是一种广泛使用的Web开发语言,由于其简单易学、灵活多变、速度较快等特点,成为了Web开发领域的重要工具。在Web开发中,数据库是不可缺少的组成部分之一。为了保证数据库的完整性和一致性,开发人员可以使用事务来实现对数据库操作的控制。本文将介绍如何使用PHP编写数据库事务的方法。一、什么是数据库事务?数据库事务(DatabaseTransaction)

php数据库的增删改查 php与javascript之间的交互php数据库的增删改查 php与javascript之间的交互

04Jun2018

这篇文章主要为大家详细介绍了php数据库的增删改查,以及php与javascript之间的交互,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

See all articles