亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python:在django中用celery實現異步

系統 1851 0

celery英文官方網站:www.celeryproject.org
中文網站:http://docs.jinkan.org/docs/celery/

celery

Celery 是一個簡單、靈活且可靠的,處理大量消息的 分布式系統 ,并且提供維護這樣一個系統的必需工具。
專注于實時處理的任務隊列,同時也支持任務調度。

作用:

  • 解決耗時操作:開一個新的進程,去操作耗時操作,不影響原有進程 定時操作,使
  • List item

用celery定時執行

操作:

  1. 定義一個任務task,也就是一個python函數
  2. 將耗時任務存儲到隊列queue中
  3. 在一個新的進程中,負責執行隊列中的任務,worker
  4. broker:負責調度,將任務加到隊列中,在布置環境中使用redis

安裝包

            
              pip install celery
pip install celery
              
                -
              
              
                with
              
              
                -
              
              redis
pip install django
              
                -
              
              celery

            
          

配置settings
將djcelery包加入到INSTALLED_APPS中
并添加以下代碼:

            
              
                import
              
               djcelery
djcelery
              
                .
              
              setup_loader
              
                (
              
              
                )
              
              
                # 初始化所有的task
              
              
BROKER_URL 
              
                =
              
              
                'redis://127.0.0.1:6379/0'
              
              
                # 把所有的任務放在queue中,默認用0這個數據庫
              
              
CELERY_IMPORTS 
              
                =
              
              
                (
              
              
                'test1.task'
              
              
                )
              
              
                # 在test1這個應用下使用任務
              
            
          

在test1應用目錄下創建task.pty文件

            
              
                import
              
               time

              
                from
              
               celery 
              
                import
              
               task

@task

              
                def
              
              
                show
              
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                'hello...'
              
              
                )
              
              
	time
              
                .
              
              sleep
              
                (
              
              
                5
              
              
                )
              
              
                print
              
              
                (
              
              
                'world...'
              
              
                )
              
            
          

遷移,生成celery需要的數據表
此時不需要生成遷移,直接進行遷移

            
              python manage
              
                .
              
              py migrate

            
          

啟動redis

            
              sudo redis
              
                -
              
              server 
              
                /
              
              etc
              
                /
              
              redis
              
                /
              
              redis
              
                .
              
              conf

            
          

啟動worker

            
              python manage
              
                .
              
              py celery worker 
              
                -
              
              
                -
              
              loglevel
              
                =
              
              info

            
          

定義視圖,調用task
函數名.delay([參數])

            
              
                from
              
               task 
              
                import
              
              
                *
              
              
                def
              
              
                celeryTest
              
              
                (
              
              request
              
                )
              
              
                :
              
              
	show
              
                .
              
              delay
              
                (
              
              
                )
              
              
                return
              
               HttpResponse
              
                (
              
              
                'ok'
              
              
                )
              
            
          

配置url

            
              url
              
                (
              
              r
              
                '^celerytest/$'
              
              
                ,
              
               views
              
                .
              
              celeryTest
              
                )
              
              
                ,
              
            
          

總結:

  • 簡單:易使用和維護,不需要配置文件
  • 高可用性:如果鏈接丟失或者失敗,客戶端會自動重試,并broker通過主/主或者主/從方式復制來提高可用性。
  • 快速:單個celery進程每分鐘可處理數以百萬計的任務
  • 靈活:celery幾乎所有的部分都可以擴展或者單獨使用。

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品国产一区二区三区香蕉事 | 四虎影院视频在线观看 | 久久99精品国产麻豆 | 国产婷婷色一区二区三区 | 亚欧精品一区二区三区 | 狠狠色噜噜狠狠狠8888米奇 | 久久婷婷一区二区三区 | 国产精品青草久久福利不卡 | 亚洲精品96欧美一区二区 | 深夜福利国产 | 免费观看日本特色做爰视频在线 | 成人久久久精品乱码一区二区三区 | 欧美九九视频 | 人人干视频在线观看 | 欧美一区二区日韩一区二区 | 97国产在线公开免费观看 | 午夜探花在线观看 | 想看一级毛片 | 四虎最新网 | 四虎免费在线观看视频 | 日韩一区二区在线观看 | 日本另类αv欧美另类aⅴ | 中文字幕日韩欧美一区二区三区 | 精品久久久久久久99热 | 国产一在线精品一区在线观看 | 成人毛片网 | 色色色爱| 妇女网站爱嘿嘿视频免费观看 | a级免费网站 | 亚洲日韩中文字幕在线播放 | 在线播放亚洲视频 | 五月天婷婷久久 | 亚洲九九香蕉 | 欧美成人xxxx | 色综合久久婷婷天天 | 久久久久久久久a免费 | 澳门成人免费永久视频 | 天天色天天干天天射 | 亚洲一区二区三区国产精品 | 色综合色综合色综合色综合网 | 国产在线观看一区精品 |