烤饼 / Resque
Resque(适用于PHP)是一个基于Redis的后台作业库,用于创建后台作业,将它们放置在多个队列中,并在稍后处理。与原始版本兼容:http://resque.github.io/
1.0.10
2019-05-28 11:59 UTC
Requires
- php: ~7.2
- ext-pcntl: *
- predis/predis: *@stable
- psr/container: ^1.0
- psr/event-dispatcher: ^0.6.0, <1.0.0
- psr/event-dispatcher-task: ^0.6.0
Requires (Dev)
- php-mock/php-mock-phpunit: *@stable
- phpunit/phpunit: *@stable
Suggests
- pimple/pimple: *@stable
- scones/nexus: ^0.6.0
README
Resque
Resque机制的PHP实现。
这是一个全新的实现,具有以下特点
- 没有静态方法
- 最小化依赖(仅异步任务处理的核心功能)
- 良好的编码标准
- 将psr事件作为任务,因此可以修改行为
- 严格的类型
安装
在大多数情况下,只需通过composer安装即可。
composer require scones/resque "*@stable"
它是如何工作的?
Resque任务处理是一个去中心化的队列系统。(读:没有主服务器或类似的东西)处理分为两部分,推送作业和工作作业。这些不应该在同一个应用程序中运行,或者至少处理以获得最大效益。
推送作业
处理作业的第一步是将它放入队列。假设您已经创建了resque类,您只需调用$resque->enqueue('SomeClass', ['some' => 'data'], 'some_queue')
此方法将任务放入队列并返回。它不会处理它,因为这不是它的任务。数据将(以非常精确的格式)存储在Redis数据库中。
工作作业
处理作业的第二步是工作器。工作器是一个在任何有权限访问同一Redis数据库的地方运行的进程。
工作器等待配置的队列中的新条目,并在有可用条目时获取一个。在这种情况下,它将构建相应的类(从提供的容器/servicelocator,请参阅示例),并使用enqueue中提供的数组作为参数调用perform
。
示例
在https://github.com/scones/resque-examples下找到可运行的用法示例