php队列使用php-resque(2)

上一篇文章介绍了php-resque,本篇从实战出发。

其实该项目,在composer好像很久没有维护了。
在github,还有些代码修正。

但是,毕竟composer上的代码还是可用的!

首先,composer把项目装上,不再依赖github了。
然后,
在自己项目的任意目录建3个文件,名字,类名其实自己都能改。目录也无所谓。(本文放在/data/webroot/www/code/library/Command/daemon/)
本文的composer目录是/data/webroot/www/composer


test.php

<?php

require_once(realpath( dirname(__FILE__) .'/../common.php'));// 这是项目自身的db类

class My_Job22
{
public function perform()
{
// Work work work
echo $this->args['name'];

$db = Sys::getdb();
$sql="select user from admin limit 1"; //随便写一个数据库查询。
$result = $db->fetchOne($sql);
echo time(). $result."\n";
}
}


add_task.php

<?php

require '/data/webroot/www/composer/vendor/autoload.php';
require_once(realpath( dirname(__FILE__) .'/../common.php'));// 这是项目自身的db类
Resque::setBackend('localhost:6379');
$args = array(
'name' => '张三:'
);
Resque::enqueue('default', 'My_Job22', $args);


worker.php

<?php
require __DIR__.'/test.php';// 非常重要,必须包含任务类!!
require '/data/webroot/www/composer/vendor/chrisboulton/php-resque/resque.php';


在shell下。首先监听任务,并放到后台。
# ( QUEUE=default php /data/webroot/www/code/library/Command/daemon/worker.php ) &

开另外一个shell窗口,随便放一个任务。
# php /data/webroot/www/code/library/Command/daemon/add_task.php

这时会发现第一个窗口出现结果。
这时,可以强行关闭第一个窗口,然后在第2个窗口中
# ps aux | grep worker.php
屏幕应该显示
php /data/webroot/www/jspeople/code/library/Command/daemon/worker.php

========
注意,如果任务文件test.php有改动,必须强行停止resque进程,再启动。
如果redis端口变化,则
QUEUE=default REDIS_BACKEND=127.0.0.1:XXXX php /data/webroot/www/code/library/Command/daemon/worker.php
=============
注意:linux下的后台运行命令,保持在后台


(QUEUE=jobs3 REDIS_BACKEND=127.0.0.1:6380 php /var/www/worker3.php >> /tmp/1.log 2>&1 &)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值