【发布时间】:2012-07-17 06:44:10
【问题描述】:
我正在尝试使用 Django 自定义记录器和 Celery 任务的组合来捕获某些应用程序日志消息并将它们异步转储到 DynamoDB 中。我创建了一个 Django Celery 任务,它接收一条日志消息并将其异步传输到 DynamoDB。我尝试从我的自定义记录器中调用此 celery 任务,以将其异步传输到 DynamoDB。
但是,Django 自定义记录器不允许我导入:
from celery.task import task, Task, PeriodicTask, periodic_task
我的服务器因以下错误而崩溃:
ValueError: Unable to configure handler 'custom_handler': Cannot resolve 'myApp.analytics.tasks.LogHandler': cannot import name cache
我知道 Django Logger docs 如果自定义记录器文件会警告循环导入 包括 settings.py 但我确定不是这样。但它仍然给我与循环导入相同的错误。
我做错了什么还是有其他方法可以使用 Django 自定义记录器和 DjCelery 实现到 DynamoDB 的异步数据传输?
感谢您的帮助。
【问题讨论】:
-
可能是芹菜从设置中导入一些东西,而日志处理程序是从设置中导入的——循环导入?如果把LogHandler放在
settings.py,在tasks.py创建任务,LogHandler会调用这个任务呢? -
是的,我这样做了.. LogHandler 调用tasks.py 它仍然必须导入analytics/tasks.py,然后导入celery.task。给出同样的错误。
标签: django celery django-celery amazon-dynamodb