ask/celery — Issue #620: Celeryd-multi can's start with eventlet
Author: krokodile
Created: 2012-02-23 16:23:50+00:00
State: open

Create simple test task:
import eventlet
from celery.task import task
eventlet.monkey_patch()
@task
def add(x,y):
return x+y

Then start celeryd-multi with 2 queues( one with Eventlet, one usual):
celeryd-multi start 2 \
-Q:1 starters -c:1 5 \
-Q:2 parsers -P:2 eventlet -c2:5 \
--logfile=celer.${USER}%n.log
--loglevel=INFO \
--verbose --time-limit=60 --purge

In celer.log.2.log last line is "celery@celery2.anovoselsky-laptop has started.", but in celer.log.1log - last lines are
[2012-02-23 20:20:35,215: INFO/PoolWorker-4] child process calling self.run()
[2012-02-23 20:20:35,217: INFO/PoolWorker-5] child process calling self.run()

and agents never accept tasks.

Remarks:
If i make both queues as eventlet by adding "-P:1 eventlet" - celeryd-multi starts without any problems.
If i remove "eventlet.monkey_patch()" from test task - celeryd-multi also starts without any problems.