上一篇文章介绍了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 &)
分享到:
相关推荐
php-resque是php环境中一个轻量级的队列服务。具体队列服务是做什么用的,请自行百度! ## 运行环境 ## * PHP 5.2+ * Redis 2.2+ ## 集成方法 ## ### 将源码放到ThinkPHP的Vendor目录中 ### 将源码更新到 ...
Laravel支持多种驱动器,包括Redis、Beanstalkd、SQS等,laravel-resque-ex则专注于使用Resque作为队列后端。 Resque是由GitHub上的Chris Wanstrath开发的一个开源的、基于Redis的后台任务队列系统。它允许开发者...
Laravel-resque是Laravel社区为了更好地利用Resque(一个由GitHub上的Chris Jones开发的Redis驱动的任务队列系统)而创建的一个连接器。这个项目的主要目标是为Laravel提供对Resque的无缝集成,让开发者可以利用...
- **Resque 监控**:可以使用 Resque 的监控工具(如 `resque-web`),监控队列状态、任务执行情况和错误日志。 - **Laravel 日志**:Laravel 默认集成了 Monolog,可以记录 worker 执行任务时的错误信息,便于...
【PHP使用php-resque库配合Redis实现MQ消息队列的教程】 消息队列在Web开发中扮演着重要的角色,尤其在处理耗时的后台任务时,如发送邮件、数据分析等。这种延迟操作如果直接在前端处理,会影响用户体验。因此,...
**php-resque:一个强大的PHP队列处理库** `php-resque` 是一个基于 Ruby Resque 的 PHP 实现,由 Chris Cornutt 创建,用于在 PHP 应用程序中实现后台异步任务处理。Resque 是一种流行的工作队列系统,最初是为 ...
`illuminate-resque`则将Resque的功能与Laravel的优雅和易用性相结合,为开发者提供了强大的队列处理能力。 一、Laravel队列介绍 Laravel队列允许开发者将耗时的任务推迟到以后执行,如发送电子邮件、处理大量数据...
php-resque php-resque(发音为“ rescue”)是Redis支持的库,用于创建后台作业,将这些作业放在多个队列中并在以后进行处理。内容日志记录事件/挂钩系统配置选项Redis 贡献者 背景这个版本的 php-resque 基于最初...
目前,php-resque-scheduler仅支持延迟的作业,这是将作业推送到队列并使其在某个时间戳记或几秒钟内运行的功能。 计划在将来的版本中为周期性作业提供支持(类似于CRON)。 由于PHP端口几乎是Ruby版本的直接API...
PHP Resque Worker(和入队) PHP Resque是Redis支持的库,用于创建后台作业,将这些作业放在一个或多个队列中,并在以后进行处理。 背景Resque由GitHub开创,并用Ruby编写。 您在这里看到的东西几乎是作为Resque ...
PHP端口不包括其自己的Web界面来查看队列统计信息,因为数据以与Ruby版本的Resque完全相同的预期格式存储。 PHP端口提供与Ruby版本几乎相同的功能: 工人可以分布在多台机器之间 包括对优先级(队列)的支持 恢复...
Php-Resque 是 Resque 的PHP语言实现版。 使用示例: 1、定义一个任务队列:// Required if redis is located elsewhere Resque::setBackend('localhost:6379'); $args = array( 'name' => 'Chris' ...
和声2 SilverStripe Resque 这个模块包装了 php-resque 以便能够与 redis 和谐地制作预定的后台作业。 要求 SilverStripe 有要求 Redis服务器 (可选)工人监视器,例如god 或monit,用于启动和监视工人。 此模块...
运行 php-resque 的 Docker 镜像构建一个docker容器来运行php resque workers
Php-Resque-ex:适用于PHP的Resque Resque是Redis支持的库,用于创建后台作业,将这些作业放在多个队列中并在以后进行处理。 背景 Php-Resque-Ex是chrisboulton编写的的一个分支。 有关更多信息,请参见。 附加的...
日志管理作业状态跟踪Redis配置本土化测验屏幕截图仪表盘安装和配置:要求确保您的计算机上已安装Redis: : 获取捆绑将bcc-resque-bundle添加到您的依赖项中: { " require " : { ... " bcc/res
phpresque-email 大批量邮件发送的处理方案 基于php-resque开发,请先安装resque所需环境,并且把文件放到resque...QUEUE=email,email1,email2 COUNT=5 INTERVAL=5 php resque.php QUEUE是任务的优先级,却靠前优先级越