silverorange/site — pull request #17 by gauthierm (2013-10-02 03:04:44+00:00)
Title: Add AMQP support

This adds AMQP (advanced message queueing protocol) support to Site. AMQP is the protocol used by several queue implementations including RabbitMQ.

The intention is to switch from Gearman to RabbitMQ for job queues. The reasons are twofold:

1. Gearman doesn't have a lot of active development and has lots of old open bugs. There is little community and the release process seems slow. RabbitMQ is commercially supported, used by lots of people and has an active community.
2. Some of the bugs have already caused problems with our minimal use of Gearman.

This PR includes both an application module for queueing tasks or performing remote procedures and a base application class for workers.

Testing
-------
Some basic tests are included. To test, you'll need to point the include path in the test applications to an active pear tree with PSR_Log and Swat installed. The tests do the following:

* tests async jobs
* tests sync jobs
* tests known failed sync jobs

```
# run the job server
$ ./amqp-test-server.php -vvvv 127.0.0.1

# run the job client
$ ./amqp-test-client.php -v 3
```