【问题标题】:celery python object methods芹菜python对象方法
【发布时间】:2012-02-09 09:58:22
【问题描述】:

我正在尝试围绕 python 对象方法获取 celery 任务包装器。喜欢:

 class A:
      @task
      def test_task(self,args):
        print "BLah..test"

   def main():
     a= A()
     args = {}
     a.test_task(args)

现在失败并出现错误 test_task 需要至少 2 个参数(1 个给定)。 我的理解是 self 对象没有通过。为什么会这样?我该如何解决这个问题?

更新: 这真的是我对芹菜缺乏了解。 @task 装饰器只是添加/处理芹菜任务相关参数。它不会自动使对函数的每次调用都成为芹菜任务。该函数必须被称为 a.test_task.delay(args).. 其中的问题...

【问题讨论】:

    标签: python celery


    【解决方案1】:

    自 3.0 版以来,Celery 现在支持将方法用作任务: http://docs.celeryproject.org/en/latest/reference/celery.contrib.methods.html

    【讨论】:

    【解决方案2】:

    你需要test_task 作为方法吗?简单的功能会起作用吗?或者你可以使用静态方法吗?顺便说一句,您的main 函数不使用 celery 执行test_task,它以简单的方法运行。

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 2015-12-08
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 2014-06-15
      • 2013-07-13
      • 2012-10-07
      • 2014-08-30
      相关资源
      最近更新 更多