Sasank Sankaran
Sasank Sankaran

Reputation: 35

Celery Task not getting assigned through redis

Using Celery/redis i tried creating a task, But on checking the celery working info with the below code celery -A intranet_project worker -l info I am unable to get the task added there.

Settings.py

BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = TIME_ZONE

init.py

from __future__ import absolute_import

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app

__all__ = ('celery_app',)

celery.py

from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'intranet_project.settings')
app = Celery('intranet_project')

# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))

my_task.py

from celery.decorators import task
from celery import shared_task

@shared_task
def add(a,b):
    d = a + b
    return d

Below is the server log

[tasks] . intranet_project.celery.debug_task

[2020-02-26 19:38:59,051: INFO/MainProcess] Connected to redis://localhost:6379// [2020-02-26 19:38:59,160: INFO/MainProcess] mingle: searching for neighbors [2020-02-26 19:39:00,379: INFO/MainProcess] mingle: all alone

Upvotes: 1

Views: 2333

Answers (2)

user11752474
user11752474

Reputation:

I know it's a late response, but in order to check that celery info, now we need to use INFO

celery -A intranet_project worker -l INFO

instead of info

celery -A intranet_project worker -l info

Upvotes: 0

Lambo
Lambo

Reputation: 1174

I don`t see the code from where you execute your task.

view.py (or wherever you want to trigger the task from)

from .my_tasks import add

def action(request):
    add.delay(2,2)

You should then see a line like this appear in your celery log:

[2020-02-26 14:11:40,765: INFO/MainProcess] Received task: intranet_project.tasks.add[xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx]

Upvotes: 1

Related Questions