亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Flask中創建Celery實例?

如何在Flask中創建Celery實例?

qq_笑_17 2018-10-04 16:27:01
我在flask程序中使用了工廠函數和藍本,把Flask實例的創建放在了manage.py中(看過Flask Web開發這本書的同學應該懂我)?,F在我想要創建一個Celery的實例(在app程序包中),Celery的實例創建時需要Flask實例的程序上下文來讀取配置并在Task的調用函數里增加程序上下文,代碼如下(摘自Flask官方文檔):def make_celery(app):    celery_app = Celery(__name__)    celery_app.config_from_object(app.config)    TaskBase = celery_app.Task    class ContextTask(TaskBase):        abstract = True        def __call__(self, *args, **kwargs):            with app.app_context():                return TaskBase.__call__(self, *args, **kwargs)    celery_app.Task = ContextTask    return celery_app現在的問題是:Flask實例在manage.py中創建,不在app程序包中,沒法在app包中導入Flask實例(強行導入就沒有了大型程序結構的意義了);定義Celery Task的時候,也需要Celery的實例對象,所以也不能在manage.py中創建Celery實例;現在這兩個實例相互制約,好頭疼,請問各位大神都是怎么做的?網上看到一個方法,在app程序包創建celery實例的時候,直接調用Flask實例創建函數來創建了一個flask實例,但是這樣的話,Flask運行時的程序實例還是創建Celery時的程序實例嗎?程序上下文會不會不一致?先謝為敬!
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 1113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號