php-resque学习笔记一(测试DEMO)
1:开启worker (Worker | 执行者 : 负责从队列中取出Job并执行,可以以守护进程的方式运行在后台) 每次添加一个新JOB类,要重启worker
QUEUE=* APP_INCLUDE=require.php php bin/resque (蓝色部分为 设置环境变量, 紫色部分为启动worker)
环境变量(QUEUE,APP_INCLUDE ... 更多的请参考 php-resque/bin/resque 这个php文件里有获取各个环境变量)
其中/home/soft/php-resque/require.php 这个文件是自己加的一个引入所有的job类文件 如:发送邮件的类
require_once( '/var/www/jobclss/Mail.php' );
2:编写job类 vim /var/www/jobclss/mail.php
<code>
<?php
class Mail{
public function perform(){
echo "sleep 5s \n";
sleep(5);
var_dump($this->args);
}
}
</code>
3:编写加入队列的操作 vim /var/www/html/mail.php
<code>
<?php
echo 'send mail'.nl2br("\n");
require_once('/home/soft/php-resque/demo/init.php');
echo 'send mail 1 '.nl2br("\n");
$dbId = Resque::setBackend('localhost:6379');
echo 'send mail dbId:'.$dbId.nl2br("\n");
$args = array('name'=>'markdeng');
$jobId= Resque::enqueue('default','Mail',$args);
echo 'send mail jobId:'.$jobId.nl2br("\n");
</code>
4:访问页面: http://192.168.234.140/mail.php
结果: send mail
send mail 1
send mail dbId:
send mail jobId:bda1967935f20cc13690278212944b21 (获取到JOBID表示已加入队列了)
5:在服务器上看队列执行情况:
[notice] (Job{default} | ID: bda1967935f20cc13690278212944b21 | Mail | [{"name":"markdeng"}]) has finished
(表示已执行完)
6:如果加载新的JOB类,则要重启worker ( QUEUE=* APP_INCLUDE=require.php php bin/resque) 当前目录是/home/soft/php-resque
这里有一篇非常不错的文章
http://blog.hsatac.net/2012/01/php-resque-introduction/

浙公网安备 33010602011771号