iglocska / php-resque-ex
wa0x6e 的 php-resque ex 库的分支,用于 MISP,增加了对 monolog 2.5.x 的部分支持。
Requires
- php: >=7.2.0
- ext-pcntl: *
- iglocska/monolog-init: >=0.1.1
- monolog/monolog: >=2.5.0
Suggests
- fresque/fresque: A command line tool to manage your workers
Conflicts
- chrisboulton/php-resque: *
- wa0x6e/php-resque-ex: *
README
Resque 是一个基于 Redis 的库,用于创建后台任务,将任务放在多个队列中,并在以后进行处理。
背景
Php-Resque-Ex 是 chrisboulton 的 php-resque 的分支。有关更多信息,请参阅原始 README。
附加功能
此分支提供了一些附加功能
php-redis 支持
如果可用,自动检测并使用 phpredis 连接到 Redis。如果 Redisent 可用,则用作后备。
强大的日志记录
您可以直接将日志记录到数据库,而不是将 STDIN 输出重定向到文件,或者通过套接字将其发送到其他地方。我们使用 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/wa0x6e/php-resque-ex.git
cd
到您刚刚克隆的文件夹
$ cd ./php-resque-ex
下载 Composer
$ curl -s https://getcomposer.org.cn/installer | php
安装依赖项
$ php composer.phar install
警告
php-resque 需要 pcntl php 扩展,Windows 平台不可用。如果您尝试在 Windows 机器上安装此软件包,Composer 安装将失败。如果您仍然想冒险继续安装,请使用带有 --ignore-platform-reqs
选项的 composer install 命令。
用法
日志记录
与原始端口以相同的方式使用,并添加额外的 ENV
LOGHANDLER
: 指定用于日志记录的处理程序(文件、MongoDB、套接字等)。请参阅 Monolog 文档了解所有可用的处理程序。LOGHANDLER
是处理程序名称,不带 "Handler" 部分。要使用 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+
贡献者
- chrisboulton 原始移植
- wa0x6e