欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Celery多隊列配置代碼實例

 更新時間:2019年11月22日 09:07:09   作者:-零  
這篇文章主要介紹了Python Celery多隊列配置代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Python Celery多隊列配置代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Celery官方文檔

項目結(jié)構(gòu)

/proj
-__init__
-app.py            #實例化celery對象
-celeryconfig.py        #celery的配置文件
-tasks.py           #celery編寫任務(wù)文件

app.py

#coding:utf-8
from __future__ import absolute_import
from celery import Celery

app = Celery('proj', include=['proj.tasks'])   #實例化celery對象

app.config_from_object('proj.celeryconfig')   #引入配置文件

if __name__ == '__main__':            
  app.start()
  • proj參數(shù)為celery的名字
  • include參數(shù)為啟動時導(dǎo)入的模塊列表

tasks.py

#coding:utf-8
from __future__ import absolute_import

from proj.app import app
@app.task()
def add(x, y):
  return x + y

celeryconfig.py

#coding:utf-8
from kombu import Queue

BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' # 使用RabbitMQ作為消息代理


CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0' # 把任務(wù)結(jié)果存在了Redis

CELERY_TASK_SERIALIZER = 'msgpack' # 任務(wù)序列化和反序列化使用msgpack方案

CELERY_RESULT_SERIALIZER = 'json' # 讀取任務(wù)結(jié)果一般性能要求不高,所以使用了可讀性更好的JSON

CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # 任務(wù)過期時間,不建議直接寫86400,應(yīng)該讓這樣的magic數(shù)字表述更明顯

CELERY_ACCEPT_CONTENT = ['json', 'msgpack'] # 指定接受的內(nèi)容類型

CELERY_QUEUES = (  #設(shè)置add隊列,綁定routing_key
  Queue('add', routing_key='xue.add'),
)


CELERY_ROUTES = {  #projq.tasks.add這個任務(wù)進去add隊列并routeing_key為xue.add 
  'projq.tasks.add': { 
    'queue': 'add',
    'routing_key': 'xue.add',
  }
}
  • CELERY_ACCEPT_CONTENT的類型msgpack為是一種比json更小更快的類型,如果用需要安裝相對應(yīng)的包。
  • CELERY_QUEUES設(shè)置一個指定routing_key的隊列,這個名字可以任意指定。
  • CELERY_ROUTES設(shè)置路由,對指定的任務(wù)名,指定對應(yīng)的隊列和routing_key,注意,這里的routing_key需要和上面參數(shù)的一致。

啟動

在proj的上層目錄輸入

celery -A proj.app worker -Q add -l info

proj.tasks.add為任務(wù)名稱,也就是在CELERY_ROUTES設(shè)置的那個名稱

add是設(shè)置的queue,key=xue.add是設(shè)置的routing_key

發(fā)布任務(wù)

from proj.tasks import add
add.delay(2,3)

多隊列中需要修改的地方

CELERY_QUEUES = (  #設(shè)置add隊列,綁定routing_key
  Queue('add', routing_key='xue.add'),
)


CELERY_ROUTES = {  #projq.tasks.add這個任務(wù)進去add隊列并routeing_key為xue.add 
  'projq.tasks.add': { 
    'queue': 'add',
    'routing_key': 'xue.add',
  }

配置兩個隊列

# 配置隊列
CELERY_QUEUES = (
  Queue('default', routing_key='default'),
  Queue('隊列1', routing_key='key1'),
  Queue('隊列2', routing_key='key2'),
)
# 路由(哪個任務(wù)放入哪個隊列)
CELERY_ROUTES = {
  '任務(wù)1': {'queue': '隊列1', 'routing_key': 'key1'},
  '任務(wù)2': {'queue': '對列2', 'routing_key': 'key2'},
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3 讀、寫Excel文件的操作方法

    Python3 讀、寫Excel文件的操作方法

    這篇文章主要介紹了Python3 讀、寫Excel文件的操作方法,需要的朋友可以參考下
    2018-10-10
  • PyQt5+QtChart實現(xiàn)柱狀圖的繪制

    PyQt5+QtChart實現(xiàn)柱狀圖的繪制

    QChart是一個QGraphicScene中可以顯示的QGraphicsWidget。本文將利用QtChart實現(xiàn)柱狀圖的繪制,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-12-12
  • python構(gòu)造函數(shù)init實例方法解析

    python構(gòu)造函數(shù)init實例方法解析

    這篇文章主要介紹了python構(gòu)造函數(shù)init實例方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Python基礎(chǔ)知識之推導(dǎo)式詳解

    Python基礎(chǔ)知識之推導(dǎo)式詳解

    這篇文章主要介紹了Python基礎(chǔ)知識之推導(dǎo)式詳解,Python推導(dǎo)式是一種簡潔高效的代碼編寫方式,可以用一行代碼來創(chuàng)建列表、集合、字典等復(fù)雜數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2023-07-07
  • python判斷windows系統(tǒng)是32位還是64位的方法

    python判斷windows系統(tǒng)是32位還是64位的方法

    這篇文章主要介紹了python判斷windows系統(tǒng)是32位還是64位的方法,實例分析了兩種解決方法,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • opencv-python 開發(fā)環(huán)境的安裝、配置教程詳解

    opencv-python 開發(fā)環(huán)境的安裝、配置教程詳解

    這篇文章主要介紹了opencv-python 開發(fā)環(huán)境的安裝、配置,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 基于Python實現(xiàn)計算納什均衡的示例詳解

    基于Python實現(xiàn)計算納什均衡的示例詳解

    納什均衡是一種博弈論中的概念,它描述了一種平衡狀態(tài),其中每個參與者都不能通過獨立改變其決策來提高自己的利益。本文就來用Python中的Nashpy和PuLP實現(xiàn)計算納什均衡,感興趣的可以了解一下
    2023-02-02
  • Python Pygame實戰(zhàn)之塔防游戲的實現(xiàn)

    Python Pygame實戰(zhàn)之塔防游戲的實現(xiàn)

    這篇文章主要介紹了如何利用Python中的Pygame模塊制作簡單的塔防小游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-03-03
  • 淺談numpy 中dot()函數(shù)的計算方式

    淺談numpy 中dot()函數(shù)的計算方式

    這篇文章主要介紹了淺談numpy 中dot()函數(shù)的計算方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 利用Python繪制一個可愛的米老鼠

    利用Python繪制一個可愛的米老鼠

    turtle庫是一個點線面的簡單圖像庫,在Python2.6之后被引入進來,能夠完成一些比較簡單的幾何圖像可視化。本文將利用turtle繪制一個可愛的米老鼠,感興趣的可以試一試
    2022-03-03

最新評論