mugoweb/mugo_queue

ezpublish 的队列系统

安装: 2

依赖项: 0

建议者: 0

安全性: 0

星标: 3

关注者: 3

分支: 3

开放问题: 0

类型:ezpublish-legacy-extension

dev-master 2021-08-27 06:25 UTC

This package is auto-updated.

Last update: 2024-08-27 13:31:17 UTC


README

这是什么?

这是一个处理任务队列的框架。

示例:您想重建所有文章对象的 eZ Find 搜索索引。为了重新索引所有文章,您需要将多个任务添加到队列中。使用此框架,您还可以开发一个可以重新索引单个文章的任务。另一个过程会从队列中获取“重新索引”任务,执行它们,如果执行成功则删除它们。

该框架包含一个脚本,可以将任务添加到队列或从队列中执行任务。任务是一个抽象类。要实现具体的任务,您需要实现两个方法

  1. function create( $parameters ):此函数必须创建一个任务 ID 数组。关于示例,该函数将返回所有文章对象 ID 的数组。

  2. function execute( $task_id, $parameters ):执行单个任务 ID。关于示例,该函数将获取给定 $task_id 的对象并将其添加到搜索索引。

安装说明

  1. 将存档提取到 extension 文件夹中

  2. 启用扩展 -- 例如在 settings/override/site.ini.append.php

    添加此行:ActiveExtensions[]=mugo_queue

    在 '[ExtensionSettings]' 块下

  3. 导入数据库模式:mysql -u YourUser -pYourPass YourDB < sql/mysql/schema.sql

  4. 重新生成自动加载:php bin/php/ezpgenerateautoloads.php -e

  5. 尝试执行脚本:php extension/mugo_queue/bin/run.php

Mugo Queue 与 eZ Publish 脚本或 cronjob 之间的区别是什么?

最终结果相同:一个简单的 eZ Publish 脚本可以重新构建所有文章对象的 eZ Find 搜索索引,Mugo Queue 也可以做到。

Mugo Queue 要求您将过程分为两个步骤

  1. 将任务添加到队列中
  2. 从队列中执行任务

您可以在任何时间中断正常脚本并从头开始重新启动它。使用 Mugo Queue,您可以继续在脚本中断的地方(带有队列中的剩余任务)。

您需要学习如何编写任务类,但不需要学习如何实现完整的 eZ Publish 脚本或 cronjob。

Mugo Queue 支持多线程从队列中处理任务。

由于两步过程,您可以在白天收集任务,并在夜间(或在其他低流量时间)执行任务。

Mugo Queue 框架使您能够从命令行环境以及在正常 Apache 请求的环境中执行任务。

另请参阅

http://www.mugo.ca/Blog/mugo-queue-ezpublish-tasks