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/

posted @ 2016-05-03 22:53  amu2018  阅读(254)  评论(0)    收藏  举报