neoseeker / php-resque-ex
基于Redis的后台任务库,用于创建背景任务并在稍后处理。基于Ruby的resque的PHP端口。
1.2.7
2013-10-15 15:35 UTC
Requires
- php: >=5.3.0
- ext-pcntl: *
- kamisama/monolog-init: >=0.1.1
- monolog/monolog: >=1.2.0
Suggests
- fresque/fresque: A command line tool to manage your workers
Conflicts
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、套接字等 …)。
有关所有可用处理程序的文档,请参阅Monolog。LOGHANDLER
是处理程序名称,不带“处理程序”部分。要使用CubeHandler,只需键入“Cube”。LOGHANDLERTARGET
: 处理程序连接到数据库时使用的信息。
取决于日志处理程序类型。如果是RotatingFileHandler,则目标将是文件名。如果是CubeHandler,则目标将是UDP地址。请参阅每个处理程序以了解其__construct()
方法需要的参数类型。
如果这两个环境变量之一缺失,则默认为RotatingFile处理程序。
REDIS_DATABASE
: 选择另一个Redis数据库(默认0)REDIS_NAMESPACE
: 为键设置不同的命名空间(默认为resque)
要求
- PHP 5.3+
- Redis 2.2+
贡献者
- 感谢 chrisboulton 原始移植工作
- ka misama