mitä selleri on?
Celeryon hajautettu työjono, joka yksinkertaistaa tehtäväjakauman hallintaa.Kehittäjät pilkkovat tietokokonaisuuksia pienempiin eriin selleriä varten työstettäväksi työksi kutsutussa työssä.
otat käyttöön yhden tai useamman työprosessin, joka liittyy viestijonoon (anAMQP tai SQS-pohjainen välittäjä). Asiakkaat lähettävät työpaikkoja viestinviejälle, ja jono kuuntelee työpyyntöjä kellojen avulla. Tämän jälkeen viestivälittäjä jakaa työtoiveita työntekijöille.Työntekijät odottavat keikkoja Selleriltä ja hoitavat tehtävät.Kun olet valmis, työntekijä lähettää tuloksen toiseen jonoon asiakkaan prosessille.
Sellerissä asiakkaat ja työntekijät eivät kommunikoi suoraan keskenään vaan viestijonojen kautta.Asiakkaat lähettävät viestejä käyttäen tehtäviä järjestelmässä paljon kuin etäpuhelu käynnistää toiminnon. Asiakkaiden ei tarvitse ymmärtää varsinaista formaattia, vaan kirjata funktiot ja rekisteröidä ne kehyksellä:
@app.task def send_hello(x, y): return ‘Hello’ # overrides the broker from your configuration app = Celery('app_name', broker='...') app.tasks
käyttäen virallista Python-sidontaa loimme tehtävän ja rekisteröimme sen järjestelmään. Voit käyttääapply_async(function, args, kwargs,...)
– menetelmää tehtävän lähettämiseksi asianmukaiseen jonoon. Asiakas pyytääget
apply_async
vastaajan palauttamaa vastausta estämään ja hakemaan vastauksen tai käyttää valtion menetelmää puhelun aloittamiseksi välittäjälle, joka tarkistaa pyynnön tilan.
jonoon reititetty viesti odottaa jonossa,kunnes joku kuluttaa sen, ja viesti poistetaan jonosta, kun se on kuitattu.
tulokset sellerillä
on mahdollista pitää kirjaa tehtävien tilasta. Selleri voi myösostore tai lähettää valtiot. Joten get-toiminnon käytön sijaan on mahdollista työntää tulokset toiseen taustajärjestelmään. On olemassa useita sisäänrakennettuja resultbackends valita includingsqlalchemy, specificdatabasesandRPC (RabbitMQ).
oletuksena selleri on määritetty olemaan kuluttamatta tehtävän tuloksia. Seting theconfiguration optionresult_backend = 'rpc'
says the system to sende a response to a unique quality for consumption. Ampq-taustajärjestelmää ei suositella käytettäväksi. Siitä voi seurata muistivuoto.
lisätietoja tuloksista löytyy täältä.
Mitä ovat sellerin vaihdot?
selleri toimii themessage Routerin ja thepublish-subscribe-kuvioiden kautta.Julkaisijat työntävät viestejä vaihtoon, joka hyödyntää joko suoraa tai wildcard matching toroutethem yhteen tai useampaan työjonoon välittäjässä. Vaihtotyyppi määrittelee, miten viestit reititetään vaihdon kautta.Voit määrittää vaihtotyypit asetuksissa:
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”
tässä esimerkissä julistat oletusjonon ainoaksi tunnetuksi jonoksi oletusvaihtoehdon kanssa, mutta ohitat tyypin aiheeksi reititysavaimella keyall_tasks.task_type. Aihevaihto mahdollistaa yleismerkkien vastaavuuden käyttämisen niin, että tehtävät lähetetään kaikille_taskeille.* vastaanotetaan edelleen. Tämä konfigurointi voi tapahtua samassa moduulissa, jossa käynnistät sovelluksen.
Vaihtotyypit
vakiovaihtotyypit ovat direct, topic, fanout ja headers. Ne kertovat, miten viestit kulkevat tilaajille. Reititysavainten on vastattava täsmälleen suoraa vaihtoa. Fanout vaihto lähettää viestejä kaikille liitetyille jonoille.Aiheet mahdollistavat yleismerkkien yhteensopivuuden. Otsikkovaihto välittää vain metatietoja.
Lue lisää trabbitmq vaihto-ja reititysavaimista
milloin pitäisi käyttää selleriä?
Tehtäväjonotusjärjestelmänä selleri toimii hyvin pitkissä juoksevissa prosesseissa tai pienissä toistettavissa tehtävissä, jotka työskentelevät erissä.Tyypit ongelmia selleri käsittelee ovat yleisiä asynkronisia tehtäviä. Kuvankäsittely, videokoodaus, ETL, sähköpostin lähettäminen tai muut putkistot hyötyvät tästä valmiiksi rakennetusta kehyksestä, joka käsittelee suuren osan niiden rakentamiseen liittyvästä työstä.
mitä hyötyä sellerin käytöstä on?
selleri toimii minkä tahansa kielen kanssa standardoidun viestiprotokollan kautta.Pythonin virallisen julkaisun lisäksi muita sovellusliittymiä on kehitteillä e.g.Java RustandNode.On mahdollista luoda keskitetty järjestelmä käyttäen mitä tahansa kieltä anamqp tai SQS API.
muita etuja ovat tehtävien jakamiseen tarvittavan koodin määrän minimointi ja kyky ajoittaa työt määräajoin kelerybeatin kautta.Celerybeat on aikataulu, joka käynnistää tehtäviä säännöllisin väliajoin.Celerymonin kautta on saatavilla myös erillinen reaaliaikainen seuranta Sellerityöntekijöille.
miksi pitäisi käyttää pilviviestien välittäjää?
Esirakennettuna välikätenä selleri yksinkertaistaa putkistojen kehittämistä ja johtamista.CloudAMQP poistaa backendin hallinnolliset tarpeet valmiilla madeclustereilla.
”käytämme CloudAMQP – RabbitMQ: ta välittäjänä async-tehtävissämmeceleryn kautta. Käytämme sitä tapahtumapohjaisena async-palveluna. CloudAMQP tukee projektia asianmukaisen seurannan, korkean käytettävyyden ja scalablebroker-jonojen avulla.”Shivam Arora, Delhivery
sinun ei enää tarvitse huolehtia järjestelmäsi skaalaamisesta vastaamaan kasvavaa kysyntää.Instanssimme tulevat hallintakonsolin ollessa jo käynnissä.
RabbitMQ: n perustaminen CloudAMQP: n kanssa
CloudAMQP: n käyttö edellyttää RabbitMQ: n käyttöä välittömästi.Luo tili ja tarjoa instanssi suoraan web managementinterface. Sisäänrakennettu automaattinen skaalaus mahdollistaa välittäjät toimimaan nopeasti.CloudAMQP perustaa kustannukset kokonaan teho taustalla varaukseninstance, ja voit skaalata ylös ja alas välillä eri suunnitelmia whenneeded. Ilmainen tasomme, pikku Maki, on erinomainen vaihtoehto testattavaksi.
miten CloudAMQP: tä käytetään Selleriviestin välittäjänä?
kun CloudAMQP-välittäjäsi on varautunut, se toimii samalla tavalla kuin youron-premises-järjestelmäsi. Kaikki mitä tarvitset on URL, käyttäjätunnus ja salasana establisha yhteys välittäjä. Selleri hoitaa loput:
app = Celery('app_name', broker='amqps://user:password@host:port/host’)print(app.conf.broker_url)
sellerin kehys tallentaa URL-osoitteen kokoonpanoon. Koska selleri kulkee suoraan välittäjältä, saat saman verran valvontaa kuin jos runningyour koko järjestelmän tiloissa.
Voinko juosta Sellerityöläiseni pilvessä?
vaikka CloudAMQP tarjoaa viestinvälittäjän, on myös mahdollista valittaa AWS: n tai muun pilvipalvelun työntekijöistä. Työntekijöiden tarvitsee vain tietää, missä välittäjä asuu tullakseen osaksi järjestelmää. Selleri ylläpitää tapahtumia ja ilmoituksia varten aqueueta ilman yhteistä rekisterisolmua.
johtuen välittäjän käytöstä järjestelmän hallintaan, voit suorittaa tehtäviäsi inDocker containers overKubernetes.Kontit skaalautuvat automaattisesti tarpeisiisi, kun taas Kubernetes antaa sinulle mahdollisuuden määritellä skaalauskäytäntöjä ja kukka tarjoaa valvontaominaisuuksia.Virallinen Selleripurkki löytyy täältä:https://hub.docker.com/_/celery.Celery on myös täysin tuettu onHeroku.
selleriasiakkaiden ja työntekijöiden pyörittäminen pilvessä minimoi putkistojen kehittämisen ja käyttöönoton kustannukset.
miksi CloudAMQP sponsoroi Selleriprojektia
meillä on paljon asiakkaita,jotka pyörittävät selleriin luottavia sovelluksia, ja siksi tuemme aktiivisesti ja kuukausittain theCelery (AMQP) – projektin kehittämistä. Kerro meille, jos on jotain Celerythat haluat meidän laittaa ylimääräistä huomiota.
vieraile plan-sivullamme saadaksesi lisätietoa RabbitMQ-klusterin käyttöönoton aloittamisesta.Suosittelemme myös, että tutustut Cloudamqp: n Sellerisuosituksiimme ennen tuotantoputken aloittamista sekä arvostat lehtiselleriä.