celery

多个不同配置、组件、task的celery可以共存于同一个进程中

每一个worker 保存一个 task名---task实际代码 的映射,称之为:任务注册表(task registry),即:app.tasks

每创建一个task,就会将这个映射添加到 任务注册表

如果celery找不到某个task属于哪个模块,如果在task程序代码的源文件中,那么就是 "main.fun",
如果该task被引入到其他模块,那么该task名字就是 "module_name.fun"

自定义celery名字 app = Celery("haha")
可以通过app.mian 查看 celery实例的名字,包括在函数的源文件中,其名字显示为:haha.fun

a.py

from celery import Celery

app = Celery()

@app.task
def add(x, y):
    return x + y



if __name__ == "__main__":
    print(__name__) # __main__
    print(app.main)  # None
    print(add) #<@task: __main__.add of __main__ at 0x7f1a9dfda7b8>
    print(add.__name__)  # add
    print(app.tasks)   # {  '__main__.add': <@task: __main__.add of __main__ at 0x7f1a9dfda7b8>, ...}
    print(app.tasks['__main__.add']) #@task: __main__.add of __main__ at 0x7f1a9dfda7b8>
b.py
from a import  add,app


print(add.__name__)  # add
print(app.tasks)  # { 'a.add': <@task: a.add of __main__ at 0x7fde0ad18128>, ....}


```python
a.py

from celery import Celery

app = Celery("haha")

@app.task
def add(x, y):
    return x + y

if __name__ == '__main__':
    print(__name__)  # __main__
    print(app.main)   # haha
    print(add)   # <@task: haha.add of haha at 0x7fe9552dd898>
    print(add.__name__)  # add
    print(app.tasks)  # { 'haha.add': <@task: haha.add of haha at 0x7fe9552dd898>,....}
    print(app.tasks['haha.add'])  # <@task: haha.add of haha at 0x7fe9552dd898>,

b.py
from a import  add,app


print(add.__name__)   # add
print(app.tasks)  # {'a.add': <@task: a.add of haha at 0x7f633070add8>,...}
原文地址:https://www.cnblogs.com/jijizhazha/p/8709819.html