最近在看Celery的任務(wù)執(zhí)行框架疼鸟,一直沒有理解所謂的一個broker來對應(yīng)多個worker是怎么實現(xiàn)分布式的准给,這里提出自己的思考:是否是多個worker配置的broker是同一個,對應(yīng)的task是同樣的,這樣來實現(xiàn)從一個broker到多個worker的分布式框架。如果是這樣,那么將其理解為分布式的框架就很容易了岳链。
學(xué)習(xí)筆記:
Brokers: ?任務(wù)隊列,即生產(chǎn)者-消費者模型;
backend:結(jié)果的存儲骗卜;
Workers:任務(wù)的執(zhí)行者宠页,消費者;
Tasks:要Wroker來執(zhí)行的任務(wù).
執(zhí)行worker:celery -A ?腳本名 ?worker --loglevel=info
執(zhí)行定時任務(wù): celery -A 腳本名 beat
celery的worker運行在不同的機器上寇仓,每臺機器上有多個task進程举户;
worker運行的時候連接到broker,在控制機器上腳本直接向broker發(fā)送任務(wù)即可;
so,要建立一個broker遍烦,在不同機器上運行celery worker俭嘁。
celery的任務(wù)發(fā)布節(jié)點也就是broker所在的節(jié)點,worker節(jié)點只是用來執(zhí)行任務(wù)的服猪。