celery.py 779 Bytes
Newer Older
崔为之's avatar
崔为之 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
# @Version     : Python 3.11.4
# @Software    : Sublime Text 4
# @Author      : StudentCWZ
# @Email       : StudentCWZ@outlook.com
# @Date        : 2023/11/7 17:15
# @File        : celery.py
# @Description :
"""

from celery import Celery, Task
from flask import Flask


def make_celery(app: Flask):
    celery = Celery(
        app.import_name,
        backend='redis://localhost:6379/13',
        broker='redis://localhost:6379/13'
    )
    celery.conf.update(app.config)

    class ContextTask(celery.Task):
        def __call__(self, *args, **kwargs):
            with app.app_context():
                return self.run(*args, **kwargs)

    celery.conf.update({
        'task_cls': ContextTask,
    })

    return celery