欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PythonCelery分布式任務(wù)隊(duì)列的安裝方法

本篇內(nèi)容介紹了“Python Celery分布式任務(wù)隊(duì)列的安裝方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司從2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元平原做網(wǎng)站,已為上家服務(wù),為平原各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

Celery是一個(gè)基于Python編寫的分布式任務(wù)隊(duì)列(Distributed Task Queue), 通過(guò)對(duì)Celery進(jìn)行簡(jiǎn)單操作就可以實(shí)現(xiàn)任務(wù)(耗時(shí)任務(wù), 定時(shí)任務(wù))的異步處理

一. Celery的安裝

Celery4.0版本開(kāi)始,不支持windows平臺(tái)

1.1 通過(guò)pip方式安裝celery

pip install -U "Celery[redis]"

注意事項(xiàng):

在windows上安裝后,可能會(huì)出現(xiàn)如下報(bào)錯(cuò):

ValueError: '__name__' in __slots__ conflicts with class variable

   此時(shí)先卸載celery, 然后嘗試通過(guò)如下命令重新進(jìn)行安裝

pip install -U https://github.com/celery/py-amqp/zipball/master
pip install -U https://github.com/celery/billiard/zipball/master
pip install -U https://github.com/celery/kombu/zipball/master
pip install -U https://github.com/celery/celery/zipball/master
pip install -U "Celery[redis]"

1.2 給celery創(chuàng)建一個(gè)軟連接

ln -s ~/.venv/project_dj/bin/celery /usr/bin/celery

1.3 執(zhí)行celery命令

[root@localhost ~]$ celery --helpOptions:  -A, --app APPLICATION  -b, --broker TEXT  --result-backend TEXT  --loader TEXT  --config TEXT  --workdir PATH  -C, --no-color  -q, --quiet  --version  --help                 Show this message and exit.Commands:
  amqp     AMQP Administration Shell.
  beat     Start the beat periodic task scheduler.
  call     Call a task by name.
  control  Workers remote control.
  events   Event-stream utilities.
  graph    The ``celery graph`` command.
  inspect  Inspect the worker at runtime.
  list     Get info from broker.
  logtool  The ``celery logtool`` command.
  migrate  Migrate tasks from one broker to another.
  multi    Start multiple worker instances.
  purge    Erase all messages from all known task queues.
  report   Shows information useful to include in bug-reports.
  result   Print the return value for a given task id.
  shell    Start shell session with convenient access to celery symbols.
  status   Show list of workers that are online.
  upgrade  Perform upgrade between versions.  worker   Start worker instance.

二. Celery的基本使用

2.1 創(chuàng)建celery應(yīng)用, 并定義任務(wù)

# -*- coding: utf-8 -*-# @Time    : 2021/5/24 11:20# @Author  : chinablue# @File    : task.pyfrom celery import Celery# 創(chuàng)建一個(gè)app(Celery實(shí)例),作為所有celery操作的切入點(diǎn)broker_url = f"redis://:123456@127.0.0.1:6379/5"backend_url = f"redis://:123456@127.0.0.1:6379/6"app = Celery("tasks", broker=broker_url, backend=backend_url)# 定義一個(gè)任務(wù)@app.taskdef add(x, y):return x + y

事項(xiàng)說(shuō)明:

1) 創(chuàng)建Celery實(shí)例時(shí),需要指定一個(gè)消息代理(broker)來(lái)接收和發(fā)送任務(wù)消息. 本文使用的是Redis(docker redis搭建)

2) broker和backend參數(shù)的格式: redis://:password@hostname:port/db_number

2.2 啟動(dòng)celery worker服務(wù)端

celery -A tasks worker --loglevel=INFO

事項(xiàng)說(shuō)明:

1) 在生產(chǎn)環(huán)境中, 會(huì)使用supervisor工具將celery服務(wù)作為守護(hù)進(jìn)程在后臺(tái)運(yùn)行

2.3 調(diào)用任務(wù)

打開(kāi)終端, 進(jìn)入python命令行模式:

>>> result = add.delay(4, 4)
>>> result = add.apply_async((4, 4), countdown=5)

事項(xiàng)說(shuō)明:

1) add.apply_async((4, 4)) 可以簡(jiǎn)寫為 add.delay(4, 4)

  2) add.apply_async((4, 4), countdown=5) 表示任務(wù)發(fā)出5秒后再執(zhí)行

2.4 追蹤任務(wù)信息

若想獲取每個(gè)任務(wù)的執(zhí)行信息,在創(chuàng)建Celery實(shí)例時(shí), 需要指定一個(gè)后端(backend). 本文使用的是Redis(docker redis搭建)

result = add.delay(4, 4)        
result.ready()       # 任務(wù)狀態(tài): 進(jìn)行中, 已完成result.failed()      # 任務(wù)完成, 任務(wù)失敗result.successful()  # 任務(wù)完成, 任務(wù)成功result.state         # 任務(wù)狀態(tài): PENDING, STARTED, SUCCESSresult.get()         # 獲取任務(wù)的返回值        result.get(timeout=10)
result.get(propagate=False)  # 如果任務(wù)引發(fā)了異常, propagate=False表示異常不會(huì)被拋出來(lái)(默認(rèn)情況會(huì)拋出來(lái))result.id            # 任務(wù)id

注意事項(xiàng):

1) 在celery中,如果想配置backend參數(shù),有如下三種方式

# -*- coding: utf-8 -*-# @Time    : 2021/5/24 11:20# @Author  : chinablue# @File    : task.pyfrom celery import Celery# 創(chuàng)建一個(gè)app(Celery實(shí)例),作為所有celery操作的切入點(diǎn)broker_url = f"redis://:123456@127.0.0.1:6379/5"backend_url = f"redis://:123456@127.0.0.1:6379/6"app = Celery("tasks", broker=broker_url, backend=backend_url)# 定義一個(gè)任務(wù)@app.taskdef add(x, y):return x + y

方式1: 實(shí)例化Celery時(shí)傳入

# -*- coding: utf-8 -*-# @Time    : 2021/5/24 11:20# @Author  : chinablue# @File    : task.pyfrom celery import Celery

broker_url = f"redis://:123456@127.0.0.1:6379/5"backend_url = f"redis://:123456@127.0.0.1:6379/6"app = Celery("tasks")

app.conf.update({"broker_url": broker_url,"result_backend": backend_url,
})# 定義一個(gè)任務(wù)@app.taskdef add(x, y):return x + y

方式2: 通過(guò)conf的update方法

# -*- coding: utf-8 -*-# @Time    : 2021/5/24 11:20# @Author  : chinablue# @File    : task.pyfrom celery import Celery

broker_url = f"redis://:123456@127.0.0.1:6379/5"backend_url = f"redis://:123456@127.0.0.1:6379/6"app = Celery("tasks")

app.conf.broker_url = broker_url
app.conf.result_backend = backend_url# 定義一個(gè)任務(wù)@app.taskdef add(x, y):return x + y

“Python Celery分布式任務(wù)隊(duì)列的安裝方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

分享題目:PythonCelery分布式任務(wù)隊(duì)列的安裝方法
本文鏈接:http://chinadenli.net/article34/gohdse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化、定制網(wǎng)站、網(wǎng)站改版、建站公司、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司