protec/php-resque-ex

此包已废弃,不再维护。未建议替代包。

基于Redis的库,用于创建后台任务并在以后处理它们。基于Ruby的resque的PHP端口。

1.3.0 2015-01-28 23:00 UTC

README

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

背景

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

附加功能

此分支提供了一些附加功能

php-redis 支持

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

强大的日志记录

您可以直接将日志记录到数据库,或通过套接字发送到其他地方,而不是将标准输出管道输出到文件。我们使用 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 进入您刚刚克隆的文件夹

$ cd ./php-resque-ex

下载Composer

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

安装依赖

$ php composer.phar install

警告

php-resque 需要 pcntl php 扩展,Windows 平台上不可用。如果尝试在Windows机器上安装此包,Composer安装将失败。如果您仍然想承担风险继续安装,请使用带有 --ignore-platform-reqs 选项的 composer install 命令执行。

用法

日志记录

与原始端口使用相同的方式,额外需要设置ENV

  • LOGHANDLER : 指定用于日志记录的处理程序(文件、MongoDB、Socket等…)。有关所有可用处理程序的详细信息,请参阅Monolog文档。LOGHANDLER是处理程序名称,不带“处理程序”部分。要使用CubeHandler,只需输入“Cube”。
  • LOGHANDLERTARGET : 处理程序连接到数据库所使用的信息。取决于日志处理程序类型。如果是RotatingFileHandler,则目标将是文件名。如果是CubeHandler,则目标将是UDP地址。请参考每个处理程序以查看它们的__construct()方法需要哪种类型的参数。
  • LOGGING : 为了通过Monolog启用日志记录,必须设置此环境变量。即LOGGING=1

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

Redis后端

  • REDIS_BACKEND : 您的Redis数据库的主机名
  • REDIS_DATABASE : 选择另一个Redis数据库(默认为0)
  • REDIS_NAMESPACE : 为键设置不同的命名空间(默认为resque
  • REDIS_PASSWORD : 如果您的Redis后端需要认证

要求

  • PHP 5.3+
  • Redis 2.2+

贡献者