在类中嵌入芹菜装饰器

问题描述

我正在努力给班级的 celery 装饰者打电话。我的问题是我的装饰者将“自我”视为一个论点。有什么办法可以在我的班级中调用这个装饰器吗? 我将不胜感激,谢谢!

import numpy as np
from celery import Celery

app = Celery('tasks',broker="amqp://xx@localhost")

class arithmaticFnc():
    def __init__(self):
        self.seed = 8

    @app.task
    def add_num(self,x,y):
        return x + y 
        
-----------------

A = arithmaticFnc()
result = A.add_num.delay(2,1)

result.get()

解决方法

像这样使用基于类的任务:

import numpy as np
from celery import Celery

app = Celery('tasks',broker="amqp://xx@localhost")

class ArithmeticTask(app.Task):
    def __init__(self):
        self.seed = 8

    def run(self,x,y,*args,**kwargs):
        return x + y 

app.register_task(ArithmeticTask())
        
-----------------

a = ArithmeticTask()
result = a.delay(2,1)

result.get()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...