Skip to content

Magento Resque allows to organize a queue of SQL queries and use multiple workers to execute them in parallel during Magento DB upgrade.

License

Notifications You must be signed in to change notification settings

zlik/magento-resque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

magento-resque

The main idea for the fast Magento database upgrade was to run SQL queries in parallel. This approach was first introduced in Magento Upgrade Replay project.

Magento Resque is an utility intended to be used as an extendible standalone solution for SQL queries paralell execution during Magento upgrade.

It's nothing more than a tiny wrapper around PHP Resque – a Radis-backed library for creating jobs, placing them into a queue and processing by workers. Please reffer to https://github.com/chrisboulton/php-resque for detailed documentation.

Please note: there is a similar project for using PHP Resque with Magento we are not associated with called mage-resque. The main and the only purpose of our tool is to help speed up Magento DB upgrade, while mage-resque is all-purpose. Feel free to check it out.

Magento Resque basically implements two classes:

Queue – reads SQL queries from the specified file, wraps them into Resque jobs and enqueues the jobs in the Redis queue.

Job – run by workers. Instantiates Magento DB adapter and runs SQL queries wrapped into the job.

Installation

The easiest way to install Magento Resque is using Composer.

Create shell/magento-resque/composer.json file under Magento root directory.

Include Magento Resque to your project:

composer require zlik/magento-resque

Run composer install.

Usage Example

Change the current working directory to demo.

To enqueue SQL queries from the sql/queries.sql file to the upgrade queue run the following command:

$ php resque.php sql/queries.sql

To launch eight simultaneous workers:

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

The result should be like this:

[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

##Requirements

PHP Redis requires

  • PHP 5.3+
  • Redis 2.2+

About

Magento Resque allows to organize a queue of SQL queries and use multiple workers to execute them in parallel during Magento DB upgrade.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages