Example of parallelisation with PHP and RabbitMQ
Switch branches/tags
Nothing to show
Latest commit 7669e23 Oct 23, 2010 Arnaud Seilles Arnaud Seilles update README
Failed to load latest commit information.


h1. Parallel processing in PHP with RabbitMQ

h2. Introduction

This is a very simple example on how to accomplish parallel processing with PHP by using the messaging application RabbitMQ.
See http://geekexmachina.com/2010/10/parallelizing-php-rabbitmq/ for more details.

h2. Requirements

- PHP 5.3
- RabbitMQ running on localhost (update the include.php file for connection setting)
- The library PHP-AMQPLIB from http://github.com/tnc/php-amqplib (update include.php for path to the library)

h2. Installation

In any folder, run this:

$ git clone http://github.com/elboby/ParallelExample
$ cd ParallelExample
$ git http://github.com/tnc/php-amqplib

h2. Run

In the ParallelExample folder:

- Launch first the 2 consumers in 2 separate terminals:

$ php consume.php a
$ php consume.php b

- In another terminal, launch the main script:

$ php run_parallel.php

h2. Output

If it works, you should see this in the consumer terminals:

$ php consume.php a
23:38:04: a : PHPPROCESS_24025 : start processing...
23:38:14: a : PHPPROCESS_24025 : done in 10 seconds!

$ php consume.php b
23:38:04: b : PHPPROCESS_24025 : start processing...
23:38:09: b : PHPPROCESS_24025 : done in 5 seconds!

And in the main terminal

$ php run_parallel.php 
23:38:04 : PHPPROCESS_24025 : waiting for responses...
array(2) {
  string(15) "waited 5seconds"
  string(16) "waited 10seconds"
23:38:14 : PHPPROCESS_24025 : done in 10.010743141174 seconds