mugoweb / mugo_queue
ezpublish 的队列系统
Requires
This package is auto-updated.
Last update: 2024-08-27 13:31:17 UTC
README
这是什么?
这是一个处理任务队列的框架。
示例:您想重建所有文章对象的 eZ Find 搜索索引。为了重新索引所有文章,您需要将多个任务添加到队列中。使用此框架,您还可以开发一个可以重新索引单个文章的任务。另一个过程会从队列中获取“重新索引”任务,执行它们,如果执行成功则删除它们。
该框架包含一个脚本,可以将任务添加到队列或从队列中执行任务。任务是一个抽象类。要实现具体的任务,您需要实现两个方法
-
function create( $parameters ):此函数必须创建一个任务 ID 数组。关于示例,该函数将返回所有文章对象 ID 的数组。
-
function execute( $task_id, $parameters ):执行单个任务 ID。关于示例,该函数将获取给定 $task_id 的对象并将其添加到搜索索引。
安装说明
-
将存档提取到 extension 文件夹中
-
启用扩展 -- 例如在 settings/override/site.ini.append.php
添加此行:ActiveExtensions[]=mugo_queue
在 '[ExtensionSettings]' 块下
-
导入数据库模式:mysql -u YourUser -pYourPass YourDB < sql/mysql/schema.sql
-
重新生成自动加载:php bin/php/ezpgenerateautoloads.php -e
-
尝试执行脚本:php extension/mugo_queue/bin/run.php
Mugo Queue 与 eZ Publish 脚本或 cronjob 之间的区别是什么?
最终结果相同:一个简单的 eZ Publish 脚本可以重新构建所有文章对象的 eZ Find 搜索索引,Mugo Queue 也可以做到。
Mugo Queue 要求您将过程分为两个步骤
- 将任务添加到队列中
- 从队列中执行任务
您可以在任何时间中断正常脚本并从头开始重新启动它。使用 Mugo Queue,您可以继续在脚本中断的地方(带有队列中的剩余任务)。
您需要学习如何编写任务类,但不需要学习如何实现完整的 eZ Publish 脚本或 cronjob。
Mugo Queue 支持多线程从队列中处理任务。
由于两步过程,您可以在白天收集任务,并在夜间(或在其他低流量时间)执行任务。
Mugo Queue 框架使您能够从命令行环境以及在正常 Apache 请求的环境中执行任务。