2

On Ubuntu 11.10,

I have to issue python tasks from django using celery.

I'm currently testing on the same machine but eventually the celery worker should run on a remote machine.

django uses the following settings:

BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_VHOST = "/my_vhost"
BROKER_USER = "celery"
BROKER_PASSWORD = "celery"

I can also see my task queued in http://localhost:55672/#/queues

the celery daemon uses the following configuration (celeryconfig.py):

BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_USER = "celery"
BROKER_PASSWORD = "celery"
BROKER_VHOST = "/my_vhost"
CELERY_RESULT_BACKEND = "amqp"
import os
import sys
sys.path.append(os.getcwd())
CELERY_IMPORTS = ("tasks", )

running

celeryd -l info

works well and now I want to run it as a service.

I've followed the instructions from http://ask.github.com/celery/cookbook/daemonizing.html

and now I'm trying to run it using:

sudo /etc/init.d/celeryd start

But the message is not being consumed, no error in the celery log either.

/etc/default/celeryd

CELERYD_NODES="w1"
CELERYD_CHDIR="/path/to/django/project"
CELERYD_OPTS="--time-limit=300 --concurrency=1"
CELERY_CONFIG_MODULE="celeryconfig"
# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"

# Workers should run as an unprivileged user.
CELERYD_USER="celery"
CELERYD_GROUP="celery"

I've also created user celery in Ubuntu not sure if its necessary.

Any help will be appreciated, Thanks, Guy

Guy
  • 131
  • 1
  • 5

2 Answers2

1

We're using supervisor to run Celery on Ubuntu, and it works pretty well, including periodic status checking and restarting of dead processes.

ilvar
  • 111
  • 2
1

changed celeryconfig.py permissions (owner):

sudo chown root:staff celeryconfig.py

and it works... was easy to track after I realized:

sudo /etc/init.d/celeryd status

is giving an informative error explanations.

Guy

Guy
  • 131
  • 1
  • 5