zlik / magento-resque
Magento升级Resque允许组织SQL查询队列,并在升级过程中使用多个工作进程并行执行它们。
Requires
- chrisboulton/php-resque: dev-master
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+