3 ms·
beanstalkd (http://xph.us/software/beanstalkd/ http://xph.us/software/beanstalkd/) also has similarities to this, and for non-Django / simpler needs, it may be
by tdavis 17y ago
beanstalkd (http://xph.us/software/beanstalkd/ http://xph.us/software/beanstalkd/) also has similarities to this, and for non-Django / simpler needs, it may be better. It's basically memcached repurposed into a queue server.
A "task" would be equivalent to a script which only looks for jobs in a certain bucket (or "tube" as they're called). You can run as many clients on as many machines as you like. Obviously, since it is memory-based, you'll lose the queue in the event of a system crash.
That being said, as a rabid Django user, this is definitely going into my bookmarks!
- rcoder 17y agoThe similarities are really more between Beanstalkd and RabbitMQ, the backend message-queuing system used by Celery. Most of the interesting bits of Celery to me is in the response handling, which lets you get the result of a deferred job after the fact without the usual busywork of correlating message IDs and managing result queues. That being said, sometimes a more bare-bones solution like talking directly to Beanstalkd or an AMQP service makes sense. This can be especially true if you're dealing with a mixed-language environment where jobs may not share a class library or easy RPC.
- henriklied 17y agoI would suggest looking at redis (http://code.google.com/p/redis/ http://code.google.com/p/redis/). In my own experience, redis is really fast, and you have persistent storage of the tasks.
- asksol 17y agoPlease note that RabbitMQ does support persistence. See http://www.rabbitmq.com http://www.rabbitmq.com