【发布时间】:2017-01-22 05:41:13
【问题描述】:
我在models.py 的class Analytics 下有一些分析方法(例如:Analytics.record_read_analytics())。我们正在调用这些方法来记录分析,这些方法不需要同步。目前它正在影响每个请求的呈现,因此决定将这些方法添加到 celery 队列中。我们已经在一些任务中使用 celery,因此我们有 tasks.py 和 celery.py 文件。
以下是models.py文件的部分:
class Analytics():
...
...
@staticmethod
def method_a():
...
...
def method_b():
...
...
@staticmethod
def record_read_analytics():
...
...
我不想在tasks.py 中再次编写相同的模型级别的类方法,并且想将一些视图方法和模型级别的类方法作为 celery 任务。
下面是celery.py文件:
from __future__ import absolute_import
from celery import Celery
app = Celery('gnowsys_ndf',
include=['gnowsys_ndf.tasks'])
app.config_from_object('gnowsys_ndf.celeryconfig')
if __name__ == '__main__':
app.start()
我是 celery 的新手,正在寻求帮助。提前谢谢你。
【问题讨论】:
-
将对象参数传递给 celery 函数会出错,但我看不到它,因此使用celery flower 来诊断问题并正确指出。还要感谢@khajvah 和 Moinuddin 的一些有用的更正。现在它工作正常!
标签: python django celery django-celery