mi az a zeller?
Celeryegy elosztott feladatsor, amely leegyszerűsíti a feladatelosztás kezelését.A fejlesztők az adatkészleteket kisebb tételekre bontják, hogy a zellert feldolgozzák a munka néven ismert munka során.
egy vagy több dolgozói folyamatot telepít, amelyek egy üzenetsorhoz csatlakoznak (anAMQP vagy SQS alapú bróker). Az ügyfelek elküldik a munkahelyeket az üzenetközvetítőnek, ésa várólista meghallgatja a munkakéréseket a következővel: zeller. Az üzenetközvetítő ezután elosztja az álláskereséseket a munkavállalóknak.A dolgozók várják a zellerből származó munkákat, és végrehajtják a feladatokat.Ha elkészült, a dolgozó eredményt küld egy másik sorba az ügyfél számárafolyamatot.
a zellerben az ügyfelek és a munkavállalók nem közvetlenül kommunikálnak egymással, hanem üzenetsorokon keresztül.Az ügyfelek üzeneteket küldenek a rendszer feladatainak felhasználásával, miközben egy távoli procedurecall függvényt kezdeményez. A klienseknek nem kell érteniük a tényleges formátumot, hanem jegyzetekkel kell ellátniuk a függvényeket, és regisztrálniuk kell őket a keretrendszerrel:
@app.task def send_hello(x, y): return ‘Hello’ # overrides the broker from your configuration app = Celery('app_name', broker='...') app.tasks
a hivatalos Python kötés segítségével létrehoztunk egy feladatot, és regisztráltuk a rendszerrel. Használhatja aapply_async(function, args, kwargs,...)
módszerta feladat elküldése a megfelelő sorba. Az ügyfél felhívja aget
aapply_async
által visszaadott jövőt, hogy blokkolja és lekérje a választ, vagy az állapotmódszert használja a hívás kezdeményezéséhez a bróker számára, ellenőrizve a kérés állapotát.
a várólistára továbbított üzenet addig vár a várólistán,amíg valaki el nem fogyasztja, majd nyugtázás után az üzenet törlődik a várólistáról.
eredmények zeller
lehetőség van nyomon követni a feladatok állapotát. Zeller istárolja vagy küldje el az államokat. Tehát a get funkció használata helyett lehetségeshogy az eredményeket egy másik háttérprogramra tolja. Számos beépített resultbackends választani includingSQLAlchemy, specificdatabasesandRPC (RabbitMQ).
alapértelmezés szerint a zeller úgy van beállítva, hogy ne használja fel a feladat eredményeit. Beállítása theconfiguration optionresult_backend = 'rpc'
utasítja a rendszert, hogy küldjön választ egy egyedi sorban fogyasztásra. Nem ajánlott az ampq háttérprogram használata. Ez memóriaszivárgást okozhat.
További információ az eredményekről itt található.
mi a csere a zellerben?
a zeller keresztül működiküzenet routerés aközlekedés-feliratkozás minták.A kiadók üzeneteket küldnek egy olyan tőzsdére, amely közvetlen vagy wildcard illesztést használ a routethem-hez egy vagy több munkasorhoz a brókerben. Az exchange típus meghatározza, hogyanaz üzenetek a csere útján kerülnek továbbításra.Az exchange típusokat a következő konfigurációban állíthatja be:
CELERY_QUEUES = { "my_queue”:{ "exchange”: "my_exchange”, "exchange_type”: "topic”, "binding_key”: "all_tasks.task_type” } } CELERY_DEFUALT_EXCHANGE=”my_exchange” CELERY_DEFAULT_EXCHANGE_TYPE=”direct” CELERY_DEFAULT_ROUTING_KEY=”all_tasks”
ebben a példában egy alapértelmezett várólistát deklarál az alapértelmezett exchange egyetlen ismert várólistájaként, de felülbírálja a témát az útválasztási keyall_tasks segítségével.task_type. A téma csere lehetővé teszi, hogy helyettesítő matchingígy a feladatok küldött all_tasks.* még mindig érkeznek. Ez a konfigurációelőfordulhat ugyanabban a modulban, ahol elindítja az alkalmazást.
cserék típusai
a standard cseretípusok a direct, topic, fanout és fejlécek. Thesedictate hogyan üzenetek át az előfizetőknek. Az útválasztási kulcsoknak pontosan meg kell egyezniükközvetlen csere. A Fanout cserék üzeneteket küldenek az összes csatolt sorba.A témák lehetővé teszik a helyettesítő karakterek illesztését. A fejléccserék csak metaadatokat adnak át.
további információtrabbitmq cserék és routing kulcsok
mikor kell használni zeller?
feladat-sorban álló rendszerként a zeller jól működik hosszú futó folyamatokkal vagykis, megismételhető feladatokkal, amelyek tételeken dolgoznak.A problémák típusai a zeller fogantyúk gyakori aszinkron feladatok. Imagescaling, videó kódolás, ETL, e-mail küldés, vagy más csővezetékek részesülnek ebből az előre elkészített keretből, amely az építésükkel kapcsolatos munka nagy részét kezeli.
milyen előnyei vannak a zeller használatának?
a zeller bármilyen nyelven működik a szabványosított üzenetprotokollon keresztül.A hivatalos Python kiadáson kívül más API-k is fejlesztés alatt állnak e.g.Java, RustandNode.Lehetőség van egy központosított rendszer létrehozására bármilyen nyelv használatával az anAMQP vagy az SQS API segítségével.
további előnyök közé tartozik a distributetaskshoz szükséges kód mennyiségének minimalizálása, valamint a feladatok rendszeres ütemezésének lehetősége acelerybeat segítségével.A Celerybeat egy ütemező, amely rendszeres időközönként elindítja a feladatokat.A zeller dolgozók önálló valós idejű megfigyelése is elérhetőcelerymon.
miért érdemes felhőalapú üzenetközvetítőt használni?
előre elkészített közvetítőként a zeller leegyszerűsíti a csővezetékek fejlesztését és kezelését.CloudAMQP kiküszöböli az adminisztratív igényeit a backend ready-madeclusters.
“A CloudAMQP – RabbitMQ-t brókerként használjuk aszinkron feladatainkhoz a zeller segítségével. Eseményalapú aszinkron szolgáltatásként használjuk. CloudAMQP supportsour projekt megfelelő monitoring és a magas rendelkezésre állás és scalablebroker várólisták.”Shivam Arora, Delhivery
többé nem kell aggódnia a rendszer méretezése miatt, hogy megfeleljen a növekvő igényeknek.Példányaink a már futó felügyeleti konzollal érkeznek.
beállítása RabbitMQ a CloudAMQP
CloudAMQP rendelkezések a RabbitMQ instancesnearly azonnal.Hozzon létre egy fiókot, és hozzon létre egy példányt közvetlenül a web managementinterface – ből. A beépített automatikus méretezés lehetővé teszi a brókerek gyors működését.CloudAMQP bázisok költsége teljes egészében a hatalom a mögöttes provisionedinstance, és képes skálázni fel és le a különböző tervek whenneded. Ingyenes szintünk, kis lemur, kiváló lehetőség a tesztelésre.
Hogyan használhatom a CloudAMQP-t zeller üzenetközvetítőként?
az üzembe helyezés után a CloudAMQP bróker ugyanúgy működik, mint a saját helyiségrendszere. Csak egy URL-re, felhasználónévre és jelszóra van szüksége a brókerrel való kapcsolat létrehozásához. Zeller kezeli a többit:
app = Celery('app_name', broker='amqps://user:password@host:port/host’)print(app.conf.broker_url)
a zeller keretrendszer tárolja az URL-t a konfigurációban. Mivel a zeller a brókertől külön fut, ugyanolyan fokú ellenőrzést kap, mintha a teljes rendszert a helyszínen futtatná.
futtathatom a Zellermunkásokat a felhőben?
míg a CloudAMQP üzenetközvetítőt biztosít, az AWS-en vagy más felhőszolgáltatáson is telepíthetőcelery workers. A munkavállalóknak csak tudniuk kellahol a bróker lakik, hogy a rendszer részévé váljon. Zeller fenntartja aqueue események és értesítések nélkül közös registry csomópont.
használata miatt egy bróker rendszer menedzsment, akkor futtassa a feladatokat inDocker konténerek overKubernetes.A konténerek automatikusan méretezik az Ön igényeinek megfelelően, míg a Kubernetes lehetővé teszi a méretezési Irányelvek meghatározását, a Flower pedig felügyeleti képességeket biztosít.A hivatalos zeller konténer itt található:https://hub.docker.com/_/celery.Celery is teljes mértékben támogatja onHeroku.
a zeller ügyfelek és dolgozók felhőben való futtatása minimalizálja a csővezetékek fejlesztésének és telepítésének költségeit.
miért támogatja a CloudAMQP a zeller projektet
sok ügyfelünk futtat olyan alkalmazásokat,amelyek megbíznak a zellerben, ezért aktívan és havonta támogatjuk a theCelery (AMQP) projekt fejlesztését. Kérjük, tudassa velünk, ha van valami a zellerben, amire szeretné, ha külön figyelmet fordítanánk.
a RabbitMQ fürt telepítésével kapcsolatos további információkért látogasson el a terv oldalunkra.Azt is javasoljuk, hogy olvassa el a CloudAMQP zellerre vonatkozó ajánlott beállításainkat a gyártási csővezeték megkezdése előtt, valamint értékelje a zeller keretét.