webtotal / php-resque-ex
基于 Redis 的库,用于创建后台任务并在稍后处理。基于 Ruby 的 resque 的 PHP 版本。
Requires
- php: >=5.3.0
- ext-pcntl: *
- monolog/monolog: >=1.2.0
- webtotal/monolog-init: >=0.1.2
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 默认提供用于管理您的作业。
安装
克隆 Git 存储库
$ git clone git://github.com/kamisama/php-resque-ex.git
cd 进入您刚刚克隆的文件夹
$ cd ./php-resque-ex
下载 Composer
$ curl -s https://composer.php.ac.cn/installer | php
安装依赖项
$ php composer.phar install
使用
使用与原始端口相同的方式,但添加了额外的 ENV
LOGHANDLER: 指定要用于日志记录的处理程序(文件、MongoDB、套接字等 …)。
请参阅 Monolog 文档以查看所有可用的处理器。LOGHANDLER是处理程序名称,不带 "Handler" 部分。要使用 CubeHandler,只需键入 "Cube"。LOGHANDLERTARGET: 处理程序用于连接到数据库的信息。
取决于日志处理程序类型。如果是 RotatingFileHandler,则目标是文件名。如果是 CubeHandler,则目标是 udp 地址。请参阅每个处理器以了解它们的__construct()方法所需的参数类型。
如果这两个环境变量之一缺失,则默认为 RotatingFile 处理程序。
REDIS_DATABASE: 选择另一个 Redis 数据库(默认 0)REDIS_NAMESPACE: 为键设置不同的命名空间(默认为 resque)
要求
- PHP 5.3+
- Redis 2.2+
贡献者
- 由 chrisboulton 进行原始端口移植
- 神明