Browse files

Discuss other options for queueing/background jobs in README

  • Loading branch information...
1 parent cc34e6e commit 59127324adea47f47eb748f3f115484707a90146 @danielsdeleo committed Dec 27, 2009
Showing with 7 additions and 0 deletions.
  1. +7 −0 README.rdoc
7 README.rdoc
@@ -4,6 +4,13 @@ Qusion makes AMQP[] work with your webserver with no
* A Channel Pool. You can cause problems for yourself if you create new channels (with for every request. The pool sets up a few of these when your app starts and reuses them.
* YAML configuration files. If you're using Rails or Merb, create config/amqp.yml, then fill in the details for development, test, and production. Use Qusion.start() in your environment.rb file and you're good to go.
+= Before You Start
+Qusion makes it easy to just install the plugin and start using AMQP in your application. But there are many ways to use background jobs within a Rails app, so it's worth taking some time to consider the tradeoffs of each approach.
+* If your background job needs are simple and you're using a relational database, Delayed::Job[] lets you schedule background tasks through the database. You won't need to run another application (the AMQP Broker) to keep your app running.
+* The 0.6.x version of the ruby amqp library may drop messages when the AMQP broker goes down. Pivotal Labs has discussed this problem on their blog[]. This issue will likely be addressed in the 0.7.0 release of amqp, but can be avoided entirely using a synchronous amqp library such as bunny[]. For a ready-made background job solution using Bunny to publish jobs to the queue, see Minion[].
+* Qusion runs EventMachine in a separate thread on Phusion Passenger, Mongrel, and other non-evented servers. There are some inefficiencies in Ruby 1.8's threading model that make running EM in a thread quite slow. Joe Damato and Aman Gupta have created a patch[] for the problem which is included in an experimental branch of REE. You can learn more about the patch from Phusion's Blog[].
= Getting Started
First you'll need the amqp library and a working RabbitMQ installation. This entails:
* Install Erlang for your platform

0 comments on commit 5912732

Please sign in to comment.