celery is definitely nice, but it does have its limitations (like everything else).
I'm about to hit a point in my pet project where I need something but I havn't chosen my approach yet. I've ehard Pyres is better than Celery.
Celery does what it's supposed to; that's about all I can say for it. I'd suggest writing a few simple jobs and testing them in similar environments under as much load as you can. Look for things like consistency of logging and running tasks exactly once across multiple consumers despite the semantics of the queue you pick.
I never really saw the point of that part of celery anyway. Cron's perfectly adequate on its own (and installed just about everywhere).
I agree that you should keep the code itself in python, but that can be handled just by making it a management command that gets called by cron.
Sysadmins understand and love cron, too. I think celery reinventing the wheel might make some of them a bit mad.
- being able to modify the task frequency from the admin
- cron needs special care with setting the environment variables like PATH
Python is now my language of choice for "getting shit done".
I write this not to meaninglessly bash PHP but to hopefully convince even a single developer passing by to try out Python. I thought the same thing as you, passer-by dev, once: "Why do I need Python? It's stupid. It uses whitespace weirdly. I can do whatever I need in PHP." But then you realize you could be doing everything you're doing in PHP... better, smarter, and faster.
celeryd is also good for scheduling tasks with either single or periodic execution.
http://docs.celeryproject.org/en/latest/getting-started/firs...
You can also use it in a typical task queue role. It will pickle or serialize the Python objects that accompany tasks for transmission over the wire.