neoseeker/php-resque-ex

基于Redis的后台任务库,用于创建背景任务并在稍后处理。基于Ruby的resque的PHP端口。

1.2.7 2013-10-15 15:35 UTC

This package is auto-updated.

Last update: 2024-09-14 07:40:13 UTC


README

Resque是一个基于Redis的后台任务库,用于创建后台任务,将这些任务放入多个队列中,并在稍后处理。

背景

Php-Resque-Ex是chrisboulton的php-resque的一个分支。更多信息请参阅原始README

额外功能

此分支提供了一些额外功能

支持php-redis

如果可用,自动检测并使用phpredis连接到Redis。Redisent作为后备。

强大的日志记录

您可以直接将日志记录到数据库,而不是将STDOUT输出重定向到文件,或通过套接字将它们发送到其他地方。我们使用Monolog来管理所有日志。查看他们的文档以了解所有可用的处理程序。

日志信息增加了更多详细信息,并与工作进程、队列和作业ID(如果有)关联。

作业创建委派

如果存在Resque_Job_Creator类,并且被Resque找到,所有作业创建都将委派给此类。

将此类注入的最佳方式是将其包含在您的APP_INCLUDE文件中。

类内容是

class Resque_Job_Creator
{
	public static function createJob($className, $args) {
		
		// $className is you job class name, the second arguments when enqueuing a job
		// $args are the arguments passed to your jobs
		
		// Instanciate your class, and return the instance
		
		return new $className();
	}
}

这非常有用,当您的自动加载器无法加载类时,例如当类名与其文件名不匹配时。一些框架,如CakePHP,使用PluginName.ClassName约定进行类名,在加载之前需要特殊处理。

失败的作业日志

您可以轻松地从Redis数据库检索失败作业的日志,其键名为作业ID。每个失败日志将在两周后过期以节省空间。

命令行工具

Fresque默认提供用于管理您的作业进程。有关用法,请参阅Fresque文档

安装

克隆git存储库

$ git clone git://github.com/kamisama/php-resque-ex.git

进入您刚刚克隆的文件夹

$ cd ./php-resque-ex

下载Composer

$ curl -s https://getcomposer.org/installer | php

安装依赖项

$ php composer.phar install

用法

使用与原始端口相同的方式,并添加额外的ENV

  • LOGHANDLER : 指定用于日志记录的处理程序(文件、MongoDB、套接字等 …)。
    有关所有可用处理程序的文档,请参阅MonologLOGHANDLER是处理程序名称,不带“处理程序”部分。要使用CubeHandler,只需键入“Cube”。
  • LOGHANDLERTARGET : 处理程序连接到数据库时使用的信息。
    取决于日志处理程序类型。如果是RotatingFileHandler,则目标将是文件名。如果是CubeHandler,则目标将是UDP地址。请参阅每个处理程序以了解其__construct()方法需要的参数类型。

如果这两个环境变量之一缺失,则默认为RotatingFile处理程序。

  • REDIS_DATABASE : 选择另一个Redis数据库(默认0)
  • REDIS_NAMESPACE : 为键设置不同的命名空间(默认为resque

要求

  • PHP 5.3+
  • Redis 2.2+

贡献者