zlik / magento-resque

Magento升级Resque允许组织SQL查询队列,并在升级过程中使用多个工作进程并行执行它们。

0.1.0 2015-04-02 07:13 UTC

This package is auto-updated.

Last update: 2024-09-13 04:18:38 UTC


README

快速Magento数据库升级的主要思路是并行运行SQL查询。这种方法最初在Magento升级回放项目中引入。

Magento Resque是一个工具,旨在用作在升级过程中并行执行SQL查询的可扩展独立解决方案。

它不过是一个围绕PHP Resque(一个基于Radis的用于创建任务、将它们放入队列并由工作进程处理的库)的小型包装器。请参阅https://github.com/chrisboulton/php-resque以获取详细文档。

请注意:有一个与PHP Resque一起用于Magento的类似项目,我们与之无关,称为mage-resque。我们的工具的主要和唯一目的是帮助加速Magento数据库升级,而mage-resque是一个多功能工具。您可以随意查看它。

Magento Resque基本上实现了两个类

队列 – 从指定的文件中读取SQL查询,将它们包装成Resque任务,并将任务入队到Redis队列中。

任务 – 由工作进程运行。实例化Magento数据库适配器并运行包装在任务中的SQL查询。

安装

安装Magento Resque的最简单方法是使用Composer

在Magento根目录下创建shell/magento-resque/composer.json文件。

将Magento Resque包含到您的项目中

composer require zlik/magento-resque

运行composer install

使用示例

将当前工作目录更改为demo

要将sql/queries.sql文件中的SQL查询入队到upgrade队列,请运行以下命令

$ php resque.php sql/queries.sql

启动八个同时运行的工作进程

$ QUEUE='upgrade' COUNT=8 ../vendor/bin/resque

结果应该如下所示

[notice] Starting work on (Job{upgrade} | ID: 1 | Job | [{"q":"CREATE TABLE `resque_test_1` ..."}])
[notice] Starting work on (Job{upgrade} | ID: 2 | Job | [{"q":"CREATE TABLE `resque_test_2` ..."}])
[notice] (Job{upgrade} | ID: 2 | Job | [{"q":"CREATE TABLE `resque_test_2` ..."}]) has finished
[notice] (Job{upgrade} | ID: 1 | Job | [{"q":"CREATE TABLE `resque_test_1` ..."}]) has finished

##要求

PHP Redis需要

  • PHP 5.3+
  • Redis 2.2+