celery rabbitmq基本使用

2022-08-29 04:06:12 字數 1621 閱讀 2274

版本:

(celery==4.3,rabbitmq==3.7)

一.使用rabbitmq

#

安裝rabbitmq(mac)

brew install rabbitmq

#配置環境變數(.bash_profile或.profile,注意路徑)

export rabbit_home=/usr/local/cellar/rabbitmq/3.7.15export path=$path:$rabbit_home/sbin

#設定rabbitmq:建立乙個使用者,乙個虛擬主機並設定許可權,(需要先啟動服務)

sudo rabbitmqctl add_user myuser mypassword

sudo rabbitmqctl add_vhost myvhost

#虛擬主機

sudo rabbitmqctl set_user_tags myuser mytag #

administrator

sudo rabbitmqctl set_permissions -p myvhost myuser ".*"

".*""

.*"#啟動服務

sudo rabbitmq-server

#後台執行

sudo rabbitmq-server -detached

#不要kill(1)來停止伺服器

sudo rabbitmqctl stop

二.celery使用

# 安裝

pip install celery

應用

#

tasks.py

from celery import

celery

'tasks

', #

當前模組的名字

broker='

amqp://guest@localhost:port//'#

訊息佇列的url

)def

add(x, y):

return x + y

執行worker

celery -a tasks worker --loglevel=info

呼叫任務

#delay

from tasks import

addadd.delay(arg1,arg2,kwarg1='

x',kwarg2='y'

)#kwargs

':'x

','kwargs

':'y'})

'kwarg

': value})

#從現在起10秒內執行

#從現在起10秒內執行,使用指定eta

#從現在起一分鐘後執行,但在2分鐘後過期

#在2天後到期,設定使用datetime物件

#send_task:任務未在當前程序中註冊

任務', args=[arg,], queue='

default')

#signature用於傳遞任務呼叫簽名的物件(例如通過網路傳送),並且它們也支援calling api

task.s(arg1,arg2,kwarg1='

x',kwargs2='

y

Celery RabbitMQ快速入門

celery官方幫助 本文主要介紹celery rabbitmq的入門知識 celery 是乙個非同步任務佇列 基於分布式訊息傳遞作業佇列,它側重於實時操作,同樣也支援排程 rabbitmq為應用程式提供了強大的訊息服務。它很容易使用,適合在雲規模應用,並支援所有主流的作業系統和開發平台。rabbi...

Optimized Purchasing基礎知識

pr的三要素 物料 數量 採購日期 日期是會影響價錢的 blanket po fo框架訂單。a 成本中心,i 限制 專案的限制標籤 miro支票不管數量,從帳戶分配輸入金額。產生pr三種 me51n,me25,mrp 產生po四種 me21n,me25,me57,me59n evo 物料管理 採購 ...

Phabricator Arcanist基本用法

git clone git git clone git 獲取到arcanist的原始碼後,進行相關配置 開啟.bash profile open e bash profile在環境變數中新增 export path path somewhere arcanist bin 命令列中輸入arc命令檢視是...