0
我有我的烧瓶应用程序的蓝图。是否可以从蓝图调用芹菜任务?
我已经initalized将芹菜放入main.py文件:
def make_celery(app):
celery = Celery(app.import_name, backend=app.config['CELERY_RESULT_BACKEND'],
broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
TaskBase = celery.Task
class ContextTask(TaskBase):
abstract = True
def __call__(self, *args, **kwargs):
with app.app_context():
return TaskBase.__call__(self, *args, **kwargs)
celery.Task = ContextTask
return celery
app.config.update(
DEBUG = True,
MAIL_SERVER='smtp.gmail.com',
MAIL_PORT=465,
MAIL_USE_TLS = False,
MAIL_USE_SSL= True,
MAIL_USERNAME = email,
MAIL_PASSWORD = password,
CELERY_BROKER_URL='redis://localhost:6379/0',
CELERY_RESULT_BACKEND='redis://localhost:6379/0'
)
mail = Mail(app)
celery = make_celery(app)
我也有,我已经在我的main.py文件的应用注册的蓝图。
编辑:
我的任务:
@celery_tasks(name="call_api1")
def call_api1:
api = requests.post("blah blah")
return api
@celery.task(name="call_api2")
def call_api2():
api2 = requests.post("api2 call")
return api2
截至目前,我在main.py文件中调用这些任务。
不过,我想将它们用在我的蓝图(我已注册我的main.py)
我已经定义在main.py芹菜任务,并想知道如果我可以调用芹菜任务从我的蓝图。
问候, Galeej
是的。这种东西。我想异步地对第三方API进行一次邮政调用,并将它们流式传输到我的前端。所以这个任务本身非常简单(我已经编写了可以完成必要的工作/调用的类)。蓝图让我的生活更轻松:) – galeej
@galeej你还可以提供这些蓝图的代码吗? –