django 重写Celery任务类

yzuktlbb  于 2023-01-21  发布在  Go
关注(0)|答案(1)|浏览(134)

我试图实现一个任务,其中全局变量在两个不同的Celery任务之间共享。为此,我继承了任务类和used属性。根据celepie文档,当一个新任务被调用时,基类将初始化。我们是否有一种方法可以在任务之间重用对象?我们是否可以覆盖运行()方法?如果我们重写run方法。我们如何注册任务?使用Celery5.x将其注册为celery?尝试序列化对象..任何替代方法都将受到欢迎。
类处理程序(任务):

def __init__(self):
    self.base_obj = ""

@property
def global_handler(self):
    return self.global_thread_handler

@property
def base_handler(self):
    return self.base_obj

@app.task(base=handler)
def test123():
    test123.base_handler = cls1()

@app.task(base=handler)
def test456():
    test456.base_handler.method()
zzzyeukh

zzzyeukh1#

在Celery中注册一个任务可以简单地使用如下代码:#我的应用程序/www.example.com导入celery tasks.py import celery
来自my_app. celery导入应用程序
类MyTask(celery 任务):定义运行(自定义):[...]
MyTask =应用程序注册任务(MyTask())
我认为你不可能在任务中重用对象。有人能纠正我吗?

相关问题