php異步任務處理: gearman
Gearman是一個用來把工作委派給其他機器、分布式的調用更適合做某項工作的機器、並發的做某項工作在多個調用間做負載均衡
準備軟件包
gearmand-1.1.12.tar.gz
gearman-1.1.1.tgz php擴展
安裝支持組件
yum -y install boost-devel* gperf* libevent-devel* libuuid-devel*
./configure
make
make install
ldconfig
安裝gearman
tar xf gearmand-1.1.12.tar.gz
cd gearmand-1.1.12
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
安裝php擴展
tar xf gearman-1.1.1.tgz
cd gearman-1.1.1
/usr/local/php/bin/phpize --with-php-config=/usr/local/php/bin/php-config
./configure --with-php-config=/usr/local/php/bin/php-config
make
配置gearman
cp /tools/gearman-1.1.1/modules/gearman.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
vi /usr/local/php/etc/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226" extension="gearman.so"
service httpd restart
開始使用
mkdir -p /usr/local/var/log/
echo ‘‘ > /usr/local/var/log/gearmand.log
gearmand -d
ps -ef | grep gearman
root 15045 1 0 21:50 ? 00:00:00 gearmand -d root 15053 10 21:51 ? 00:00:00 gearmand -d root 15056 112065 0 21:52 pts/3 00:00:00 grep gearman
/usr/local/php/bin/php -c /usr/local/php/etc/php.ini client.php
/usr/local/php/bin/php -c /usr/local/php/etc/php.ini worker.php
附: 幾個代碼示例
把代碼放到htdocs目錄下, 分別訪問 worker.php 和 client.php
在linux命令行下執行也可以...
;
php異步任務處理: gearman