php队列使用php-resque

先确保机器能执行pcntl函数。
方法:
写一个最简单的php文件
<?php
echo pcntl_fork();

只有2行。
然后在命令行下执行。
如果输出一个数字。搞定。

否则就需要安装
yum install php-pcntl


然后确保redis服务端已安装并开启
yum install redis-server
service redis start


现在准备装php-resque
先得有composer,php必备工具。
cd /usr/local/bin
curl -s http://getcomposer.org/installer | php
chmod a+x composer.phar
alias composer='/usr/local/bin/composer.phar'


然后,使用Composer安装php-resque
假设web目录在/opt/htdocs
cd /opt/htdocs
git clone git://github.com/chrisboulton/php-resque.git
cd php-resque
composer install


此时,进入demo目录,这步特别重要。否则。。。
# cd demo/


# php queue.php default PHP_Job
注意,PHP_Job是job。php的里面的类名
此时下方出现类似这样的
Queued job b26d2492a6465534b7ab6c3bd1407a72

# php check_status.php b26d2492a6465534b7ab6c3bd1407a72
注意,后边的长ID必须与前面一致。
此时屏幕出现
Status of b26d2492a6465534b7ab6c3bd1407a72 is: 1


# QUEUE=default php resque.php
此时,下方有输出,
[notice] Starting work on (Job{default} | ID: b26d2492a6465534b7ab6c3bd1407a72 | PHP_Job | [{"time":1497439278,"array":{"test":"test"}}])
11Start job! -> Job ended!


全部搞定。

对于redis里保存的数据,
参考文章:
http://www.cnblogs.com/CraryPrimitiveMan/p/5618617.html

https://icewing.cc/post/background-jobs-and-phpresque-1.html

猜你喜欢

转载自xieye.iteye.com/blog/2379444