Within the Concurrency section of the Celery docs it states that:
...mix of both Eventlet and prefork workers, and route tasks according to compatibility or what works best
Source: http://celery.readthedocs.org/en/latest/userguide/concurrency/eventlet.html#concurrency-eventlet
This means that it's possible to have a worker use the gevent/eventlet pool implementation while another uses a prefork pool.
The pool implementation can be specified when creating multiple workers with celery multi:
celery -A proj multi start 2 -P gevent -c 1000
This starts 2 gevent workers, but how can I can specify pool implementation on a per worker basis when using celery multi, so that one worker uses a gevent pool and the other uses prefork?
The celery multi docs don't mention anything regarding this specific matter, and the source code (celery.bin.multi) didn't really show that this was possible (unless I misread/misunderstood the code).