Hvernig komst ég að því að lifa svona?
Ekki er langt síðan ég þurfti að vinna á bakhlið mjög hlaðins verkefnis, þar sem nauðsynlegt var að skipuleggja reglubundna framkvæmd fjölda bakgrunnsverkefna með flóknum útreikningum og beiðnum um þjónustu þriðja aðila. Verkefnið er ósamstillt og áður en ég kom hafði það einfalt kerfi til að ræsa verkefni: lykkja sem athugar núverandi tíma og ræsir hópa af coroutines í gegnum safna - þessi aðferð reyndist vera ásættanleg þar til það voru tugir og hundruðir af slíkum coroutines Hins vegar, þegar fjöldi þeirra fór yfir tvö þúsund, þurfti ég að hugsa um að skipuleggja venjulega verkefnaröð með miðlara, nokkrum starfsmönnum og svo framvegis.
Fyrst ákvað ég að prófa sellerí sem ég hafði notað áður. Vegna þess hversu ósamstilltur verkefnið var, kafaði ég ofan í spurninguna og sá
Ég segi þetta, verkefnið er mjög áhugavert og virkar mjög vel í öðrum forritum teymisins okkar, og höfundurinn sjálfur segir að hann hafi getað rúllað því út í framleiðslu með því að nota ósamstillt laug. En því miður hentaði það mér ekki eins og það kom í ljós
Í þessu sambandi fór ég að leita valkostir og fann það! Höfundar sellerísins, sérstaklega, eins og ég skil það
Einnig er hægt að skoða
Hvað gerum við?
Svo, í stuttri greinaröð, mun ég sýna þér hvernig á að safna gögnum úr bakgrunnsverkefnum með Faust. Heimildin að dæmiverkefninu okkar verður, eins og nafnið gefur til kynna,
PS Miðað við sjálfstraustið sem punkturinn um eftirlit var skrifaður með, held ég að lesandinn í lok síðustu greinar muni samt líta einhvern veginn svona út:
Verkefnakröfur
Vegna þeirrar staðreyndar sem ég hef þegar lofað, skulum við gera lítinn lista yfir hvað þjónustan ætti að geta gert:
- Hladdu upp verðbréfum og yfirliti yfir þau (þar á meðal hagnað og tap, efnahagsreikning, sjóðstreymi - fyrir síðasta ár) - reglulega
- Hladdu upp sögulegum gögnum (fyrir hvert viðskiptaár, finndu öfgagildi á lokaverði viðskipta) - reglulega
- Hladdu upp nýjustu viðskiptagögnum - reglulega
- Hladdu upp sérsniðnum lista yfir vísbendingar fyrir hvert öryggi - reglulega
Eins og við var að búast veljum við nafn á verkefnið frá grunni: Horton
Við erum að undirbúa innviðina
Titillinn er vissulega sterkur, en allt sem þú þarft að gera er að skrifa litla stillingu fyrir docker-compose með kafka (og dýragarðsvörður - í einum íláti), kafdrop (ef við viljum skoða skilaboð í efni), mongodb. Við fáum [docker-compose.yml](
version: '3'
services:
db:
container_name: horton-mongodb-local
image: mongo:4.2-bionic
command: mongod --port 20017
restart: always
ports:
- 20017:20017
environment:
- MONGO_INITDB_DATABASE=horton
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=admin_password
kafka-service:
container_name: horton-kafka-local
image: obsidiandynamics/kafka
restart: always
ports:
- "2181:2181"
- "9092:9092"
environment:
KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"
KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka-service:29092,EXTERNAL://localhost:9092"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"
KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"
KAFKA_ZOOKEEPER_SESSION_TIMEOUT: "6000"
KAFKA_RESTART_ATTEMPTS: "10"
KAFKA_RESTART_DELAY: "5"
ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: "0"
kafdrop:
container_name: horton-kafdrop-local
image: 'obsidiandynamics/kafdrop:latest'
restart: always
ports:
- '9000:9000'
environment:
KAFKA_BROKERCONNECT: kafka-service:29092
depends_on:
- kafka-service
Hér er alls ekkert flókið. Tveir hlustendur voru lýstir yfir fyrir kafka: einn (innri) til notkunar innan samsetta netsins og hinn (ytri) fyrir beiðnir utan frá, svo þeir sendu það út. 2181 — dýragarðshafnarhöfn. Restin held ég að sé á hreinu.
Undirbúningur beinagrind verkefnisins
Í grunnútgáfunni ætti uppbygging verkefnisins okkar að líta svona út:
horton
├── docker-compose.yml
└── horton
├── agents.py *
├── alphavantage.py *
├── app.py *
├── config.py
├── database
│ ├── connect.py
│ ├── cruds
│ │ ├── base.py
│ │ ├── __init__.py
│ │ └── security.py *
│ └── __init__.py
├── __init__.py
├── records.py *
└── tasks.py *
*Allt sem ég tók eftir Við snertum það ekki ennþá, við búum bara til tómar skrár.**
Við bjuggum til uppbyggingu. Nú skulum við bæta við nauðsynlegum ósjálfstæðum, skrifa stillinguna og tengjast mongodb. Ég mun ekki gefa upp allan texta skránna í greininni, til að tefja það ekki, en ég mun útvega tengla á nauðsynlegar útgáfur.
Byrjum á ósjálfstæði og meta um verkefnið -
Næst byrjum við að setja upp ósjálfstæði og búa til virtualenv (eða þú getur búið til venv möppuna sjálfur og virkjað umhverfið):
pip3 install poetry (если ещё не установлено)
poetry install
Nú skulum við búa til
Þegar þú tengist Mongo er allt frekar einfalt. tilkynnti
Hvað gerist næst?
Greinin er ekki mjög löng, þar sem ég er aðeins að tala um hvatningu og undirbúning, svo ekki ásaka mig - ég lofa að næsti hluti mun hafa hasar og grafík.
Svo, í þessum næsta hluta:
- Við skulum skrifa lítinn viðskiptavin fyrir alphavantage á aiohttp með beiðnum um endapunktana sem við þurfum.
- Búum til umboðsmann sem mun safna gögnum um verðbréf og sögulegt verð fyrir þau.
Heimild: www.habr.com