【问题标题】:Celery Task not getting assigned through redis芹菜任务没有通过redis分配
【发布时间】:2020-02-26 14:22:39
【问题描述】:

使用 Celery/redis 我尝试创建一个任务,但是在使用以下代码检查 celery 工作信息时 celery -A intranet_project worker -l info 我无法在那里添加任务。

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

初始化.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',)

芹菜.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

下面是服务器日志

[任务] . intranet_project.celery.debug_task

[2020-02-26 19:38:59,051: INFO/MainProcess] 连接到 redis://localhost:6379// [2020-02-26 19:38:59,160:INFO/MainProcess] 混合:搜索邻居 [2020-02-26 19:39:00,379:INFO/MainProcess] 混合:独自一人

【问题讨论】:

  • 您如何称呼您的任务?显然一切都很好。请记住在调用您的任务时使用异步调用.delay()。例如add.delay(2, 3)

标签: python django redis celery


【解决方案1】:

我没有看到您执行任务的代码。

view.py(或您想要触发任务的任何位置)

from .my_tasks import add

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

你应该会在你的 celery 日志中看到这样的一行:

[2020-02-26 14:11:40,765: INFO/MainProcess] 收到任务:intranet_project.tasks.add[xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx]

【讨论】:

  • 如果你触发了你的任务,但它仍然不起作用,请尝试在你的 settings.py 文件中注释掉这行“CELERY_TIMEZONE = TIME_ZONE”
猜你喜欢
  • 2021-04-25
  • 2019-04-05
  • 2011-11-20
  • 2016-10-22
  • 2019-07-08
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多