I\'m writing a Python application that needs both concurrency and asynchronicity. I\'ve had a few recommendations each for Twisted and Celery, but I\'m having trouble determini
Is either Celery or Twisted a more generally appropriate framework here?
Depends on what you mean by "generally appropriate".
If they'll both solve the problem adequately, are there pros/cons to using one vs the other?
Not an exhaustive list.
Celery Pros:
Celery Cons:
Twisted Pros:
Twisted Cons:
I'm familiar with both, and from what you've said, if it were me I'd pick Twisted.
I'd say you'll get it done quicker using Celery, but you'd learn more while doing it by using Twisted. If you have the time and inclination to follow the steep learning curve, I'd recommend you do this in Twisted.
Celery allows you to use asynchronous behavior of various async library like gevent and eventlet. So you can have best of both world.
Example using eventlet https://github.com/celery/celery/tree/master/examples/eventlet
Example using gevent https://github.com/celery/celery/tree/master/examples/gevent