<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      celery 與 flask 實現異步任務調度

          Flask 定了2中上下文,來實現機遇線程\協程的,wsgi服務的請求(request、session)和存儲(g,current_app )過程,通過棧來完成不同線程和協程的上下文切換,在與celery相結合處理異步任務時,需要保證異步任務在同一個上下文中執行,需要對celery進行重構, 避免出現:

      ile "/opt/xAssets/venv/lib/python3.6/site-packages/celery/app/trace.py", line 412, in trace_task
          R = retval = fun(*args, **kwargs)
        File "/opt/xAssets/venv/lib/python3.6/site-packages/celery_context/model.py", line 42, in __call__
          with current_app.app_context():
        File "/opt/xAssets/venv/lib/python3.6/site-packages/werkzeug/local.py", line 347, in __getattr__
          return getattr(self._get_current_object(), name)
        File "/opt/xAssets/venv/lib/python3.6/site-packages/werkzeug/local.py", line 306, in _get_current_object
          return self.__local()
        File "/opt/xAssets/venv/lib/python3.6/site-packages/flask/globals.py", line 51, in _find_app
          raise RuntimeError(_app_ctx_err_msg)
      RuntimeError: Working outside of application context.
      
      This typically means that you attempted to use functionality that needed
      to interface with the current application object in some way. To solve
      this, set up an application context with app.app_context().  See the
      documentation for more information.

       

      celery 的使用

      •  應用:
      from celery import Celery
      
      celery = Celery('xassets',
                      broker=settings.CELERY_BROKER_URL,
                      include="xassets.tasks",
                      backend=settings.CELERY_RESULT_BACKEND,
                      )
      •  celery 以 默認方式(perfork)
      # 緊接上文

        from celery.signals import worker_process_init

      TaskBase = celery.Task
      
      
      class ContextTask(TaskBase):
          abstract = True
      
          def __call__(self, *args, **kwargs):
              with current_app.app_context():
                  return TaskBase.__call__(self, *args, **kwargs)
      
      
      celery.Task = ContextTask
      
      
      @worker_process_init.connect
      def init_celery_flask_app(**kwargs):
          """Create the Flask app after forking a new worker.
      
          This is to make sure no resources are shared between processes.
          """
          app = create_app()
          app.app_context().push()

      # 注意: worker_process_init 信號,僅用于perfork方式啟動,如果以gevent,greelet 或者thread方式啟動,這此處不執行,也就是會缺少缺少app實例化

      •  以gevent方式啟動(大多數人的選擇)
      TaskBase = celery.Task
      
      app = create_app()
      
      
      class ContextTask(TaskBase):
          abstract = True
      
          def __call__(self, *args, **kwargs):
              with app.app_context():
                  return TaskBase.__call__(self, *args, **kwargs)
      
      
      celery.Task = ContextTask

      # 注意:1. 需要提前創建 flask 上下文應用實例

                  2. 重定義task時,建議使用app.app_context

      celery_context 封裝一鍵化應用

      from celery_context import Celery
      
      celery = Celery('xassets',
                      broker=settings.CELERY_BROKER_URL,
                      include="xassets.tasks",
                      backend=settings.CELERY_RESULT_BACKEND,
                      )
      
      app = create_app()
      celery.reload_task(app)
      # 或者 
      # celery.init_app(app)

       

      posted @ 2021-03-08 20:18  binger0712  閱讀(475)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 精品国产午夜福利在线观看 | 九九久久自然熟的香蕉图片| 成人福利国产午夜AV免费不卡在线 | 大足县| 91蜜臀国产自产在线观看| 97久久综合亚洲色hezyo| 久久夜色精品国产亚洲av| 亚洲综合天堂一区二区三区 | 深夜福利成人免费在线观看| 漂亮人妻被强中文字幕久久 | 少妇被无套内谢免费看| 国产成人高清精品亚洲| 日韩精品一区二区三区影院| 久久99国产精品尤物 | 欧美激情 亚洲 在线| 午夜射精日本三级| 91精品国产免费人成网站| 2020年最新国产精品正在播放| 国产精品久久久久久影视| 色99久久久久高潮综合影院| 国产精品爱久久久久久久| 久久人妻夜夜做天天爽| 无码人妻丰满熟妇奶水区码| 国精品91人妻无码一区二区三区| 国产精品呻吟一区二区三区| 久久精品国产熟女亚洲av| 人妻在线中文字幕| 风流少妇又紧又爽又丰满| 嫩草院一区二区乱码| 美乳丰满人妻无码视频| av天堂午夜精品一区| 日韩一区二区三区女优丝袜| 九九热精品在线观看| 亚洲成人高清av在线| 国产精品一区二区 尿失禁| 麻豆国产成人AV在线播放| 久久久WWW成人免费精品| 亚洲V天堂V手机在线| 久久国产乱子精品免费女| 日韩精品一区二区蜜臀av| 色综合天天综合网中文伊|