20 lines
656 B
Python
20 lines
656 B
Python
from celery import Celery, shared_task, Task
|
|
|
|
def celery_init_app(app) -> Celery:
|
|
class FlaskTask(Task):
|
|
def __call__(self, *args: object, **kwargs: object) -> object:
|
|
with app.app_context():
|
|
return self.run(*args, **kwargs)
|
|
|
|
celery_app = Celery(app.name, task_cls=FlaskTask)
|
|
celery_app.config_from_object(app.config["CELERY"])
|
|
celery_app.conf.beat_schedule = {
|
|
'user-favourability-task': {
|
|
'task': 'celery_tasks.preferences.user_preferences',
|
|
'schedule': 30.0,
|
|
},
|
|
}
|
|
celery_app.set_default()
|
|
app.extensions["celery"] = celery_app
|
|
return celery_app
|