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
相关文章

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

17Feb2025
WordPress 深度依赖第三方 JavaScript 和 PHP 库,其中 jQuery 是使用最广泛的 JavaScript 库,PHP 库主要由单个类文件组成。其他使用的 JavaScript 库包括 jQuery Masonry、jQuery Hotkeys、jQuery Suggest、jQuery Form、jQuery Color、jQuery Migrate、jQuery Schedule、jQuery UI、Backbone、colorpicker、hoverIntent、S

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

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

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


Hot Tools
