background image

服务器端 PHP 多进程编程实战

最近比较 PHP 跟 Python, Erlang 的特性,发现 PHP 有很多人们不常用到的特性。用 PHP 
CLI 可以实现很多不错的应用。比如做搜索引擎的爬虫, 长期运行的计算脚本, 完全可以取
代其他语言来做服务器的运维。这对于熟悉 PHP 的人来说如虎添翼。

bitsCN 推荐阅读:让 PHP 开发者事半功倍的十大技巧

为什么 PHP 多进程很好? 网游服务器大部分都使用多线程而不是多进程的原因也在于进
程比线程更加稳定。而且多线程适合现在多核服务器的应用场景,更能发挥多核运算的能
力。进程的维护可以用很多操作系统级别的工具。Message Queue 解决了多大部分线程通信
问题。所以 PHP 多进程很适合做服务器端的计算密集型的应用。

据一家越南 IT 公司介绍,他们成功的把 PHP 后台多进程用在法律文件的分发、处理银行
账户的金额这样的企业级的应用上。

使用后台 PHP 进程可以不影响服务器同时处理网页的请求。这种后台进程一旦发生失败
很容易查处原因进行恢复或者补救,所以健壮性更高。不同的进程相互隔离,更加高效,
可以统一调度各个服务进程。

PHP 是目前应用最广泛的 Web 开发语言,所以用 PHP 来做服务器端的应用可以降低成本。
可以用现有人员、现有配置、甚至做到代码重用。什么样的场景更适合用 PHP 后台多进程
呢?比如邮件的分发、远程服务的调用、数据的聚合、计划任务、计算结果的缓存这些不需
要立即返回的地方。

PHP 单进程在某些地方完全可以达到目的,而且更加容易实现,不用考虑进程的同步问
题,不用考虑数据的共享问题。PHP CLI(SAPI SERVER API) 命令行接口可以用来做
CRON 计划任务, 

 

图形界面程序 (使用 GTK 库)。

PHP CLI 例子

php -f test.php  php -r “echo time();”  php -R as python style PHP 读取命令行参数:

<?php #!/usr/bin/php -q  echo “Test Arguments:\n”;  echo 最近比较 PHP 跟 Python, Erlang 的特
性,发现 PHP 有很多人们不常用到的特性。用 PHP CLI 可以实现很多不错的应用。比如做
搜索引擎的爬虫, 长期运行的计算脚本, 完全可以取代其他语言来做服务器的运维。这对于
熟悉 PHP 的人来说如虎添翼。
bitsCN 推荐阅读:让 PHP 开发者事半功倍的十大技巧
为什么 PHP 多进程很好? 网游服务器大部分都使用多线程而不是多进程的原因也在于进
程比线程更加稳定。而且多线程适合现在多核服务器的应用场景,更能发挥多核运算的能
力。进程的维护可以用很多操作系统级别的工具。Message Queue 解决了多大部分线程通信
问题。所以 PHP 多进程很适合做服务器端的计算密集型的应用。
据一家越南 IT 公司介绍,他们成功的把 PHP 后台多进程用在法律文件的分发、处理银行
账户的金额这样的企业级的应用上。