相关疑难解决方法(0)

Django Celery采伐最佳实践

我正在努力让Celery登录工作Django.我有登录设置settings.py进入控制台(这是我正在托管的工作正常Heroku).在每个模块的顶部,我有:

import logging
logger = logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)

在我的tasks.py中,我有:

from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
Run Code Online (Sandbox Code Playgroud)

这适用于从任务记录调用,我得到如下输出:

2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting
Run Code Online (Sandbox Code Playgroud)

但是如果该任务然后调用另一个模块中的queryset方法,例如方法,我会得到重复的日志条目,例如

2012-11-13T18:00:51+00:00 app[worker.1]: [INFO] utils.generic_importers.ftp_processor process(): File xxx.csv already imported. Not downloaded
2012-11-13T18:00:51+00:00 app[worker.1]: [2012-11-13 18:00:51,736: INFO/PoolWorker-6] File xxx.csv already imported. Not downloaded
Run Code Online (Sandbox Code Playgroud)

我想我可以用

CELERY_HIJACK_ROOT_LOGGER = False
Run Code Online (Sandbox Code Playgroud)

只是使用Django日志记录但是当我尝试它时这不起作用,即使我确实让它工作,我也会失去"PoolWorker-6"我想要的那一点.(顺便说一句,我无法弄清楚如何在Celery的日志条目中显示任务名称,因为文档似乎表明它应该).

我怀疑我在这里缺少一些简单的东西.

python django logging celery django-celery

64
推荐指数
4
解决办法
4万
查看次数

标签 统计

celery ×1

django ×1

django-celery ×1

logging ×1

python ×1