You are currently browsing the monthly archive for May 2015.
I’ve begun playing with message and task queues to see how they might benefit my projects. I have several ideas, most of which are out of my immediate reach. I still have a lot to learn. I have one use case for a simple message queue that I think will be a good starter for me.
I’ve settled on RabbitMQ for the broker. It’s certainly capable of handling my simple starter project and it is a safe bet that I will be able to grow into it for a long time to come. The message producer for my first use case will be a Perl script (for reasons not worth explaining right now). I do have more flexibility with the message consumer, I’m thinking of incorporating that into a Python/Django application, but I’ll keep that in Perl as well to start with.
There are a few Perl modules available supporting RabbitMQ and AMQP. The RabbitMQ tutorials for Perl use Net::RabbitFoot. I decided to use Net::RabbitMQ because of its simplicity and lack of dependancies on other modules. It also forced me to work through the existing RabbitMQ tutorials and rewrite them – a good educational opportunity. I used the Python/pika tutorials as the source of my porting. This gave me some exposure to pika, which I will need if I later start working in Python. I’ve got my eye on Celery but I’m not ready for that level of sophistication yet.
The fruits of my labor are available at crashingdaily/rabbitmq-tutorials-perl on GitHub. My Perl ports are compatible with the official Python/pika examples. That is, you can use the Perl scripts to consume from the Python producers and vice versa.
Redoing RabbitMQ’s tutorial – Marco Marongiu’s rewrite of several tutorials, also using Net::RabbitMQ. His examples provided a nice a jump start for my adventure.