Celery: A Distributed Task Queue for Django
ask.github.com
ask.github.com
See pp (http://www.parallelpython.com/) for something similar, without the django dependency. More parallel processing goodies at http://wiki.python.org/moin/ParallelProcessing.
I.e. you could swap out Django for CGI, and the ORM with SQLAlchemy, but then you might as well start from scratch.
http://playgroundblues.com/posts/2009/may/20/working-django-...
Meanwhile, I think there's nothing wrong with people distributing tools which integrate queuing solutions into specific libraries/frameworks; such things can often be quite useful and end up offering more natural interfaces for the task at hand.
Does anyone have experience with this library or anything similar?
It's not too hard to perform only one of the use cases that celery handles, but to get all of them? I'm installing celery this weekend and will see how it goes. Maybe if it goes well, I can give a before-and-after blog post and submit it to HN.
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!
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.
This sounds like a dumb question to my own ears, but I just don't have to familiarity to know the proper use case. I essentially want continuous crawling and ingestion with the potential to spread the load across multiple servers one day.
(presumably the ingestors would be populating local databases, with a query getting farmed out to each server+database, but I haven't figured that part out, either....ummm, sounds like a task I could put into the queue, as well. Are these things really nails?)
I'd be grateful if anyone can point me to some examples or provide a bit of context.