Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>IronMQ does not process your tasks for you; it simply serves as the backend for Celery to keep track of what jobs need to be performed.</p> <p>So, here's what happens. Assume you have two servers, your web server and your Celery server. Your web server is responsible for handling requests, your Celery server creates the thumbnails and uploads them to S3. Here's what a typical request looks like:</p> <ol> <li>Your user uploads the image to your web server.</li> <li>You store that image somewhere--I'd recommend putting it on S3 right then, personally, but you could also store it in, for example <a href="http://iron.io/cache" rel="noreferrer">IronCache</a>, base64-encoded. The point is to put it somewhere your Celery server can access it.</li> <li>You queue up a job on Celery, passing the location of the image to your Celery server.</li> <li>Your Celery server downloads the image, generates your thumbnails, and uploads them to S3. It then stores the S3 URLs in the job results.</li> <li>Your web server waits until the job finishes, then has access to the results. Alternatively, you could have your Celery server store the results in the database itself. The point is that the Celery server does the heavy lifting (generating the thumbnails) and does not hold up the request loop while it does.</li> </ol> <p>I wrote an example for using IronMQ on Heroku. You can see it here: <a href="http://iron-celery-demo.herokuapp.com" rel="noreferrer">http://iron-celery-demo.herokuapp.com</a>. You can see the source for the example <a href="https://github.com/iron-io/heroku-iron-celery-demo" rel="noreferrer">on Github</a> and <a href="https://github.com/iron-io/heroku-iron-celery-demo/blob/master/tutorial.md" rel="noreferrer">read the tutorial</a>, which explains pretty thoroughly and step-by-step how to deploy Celery on Heroku.</p> <p>To clear up the AMQP stuff:</p> <ul> <li>IronMQ is a cloud-based message queue service developed by Iron.io.</li> <li>AMQP is an open messaging specification</li> <li>RabbitMQ is the most popular implementation (that I know of) of the AMQP specification.</li> <li>PyAMQP is a Python library that lets Python clients communicate with any implementation of AMQP, including RabbitMQ</li> </ul> <p>One of the biggest differences between IronMQ and RabbitMQ/AMQP is that IronMQ is hosted and managed, so you don't have to host the server yourself and worry about uptime. The spec offers a bunch more in terms of differentiation, and there are underlying differences, but Celery abstracts most of those away. Because you're using Celery, the only difference you're liable to notice is that IronMQ is hosted, so you don't have to stand up and manage your own server.</p> <p><strong>Full disclosure</strong>: I am employed by Iron.io, the company behind IronMQ.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload