Olee otú m si bie ndụ otú a?
N'oge na-adịbeghị anya, m na-arụ ọrụ na backend nke a ukwuu kwajuru oru ngo, nke ọ dị mkpa iji hazie mgbe ogbugbu nke a nnukwu ọnụ ọgụgụ nke ndabere aga-eme na mgbagwoju mgbako na arịrịọ maka ndị ọzọ ọrụ. Ihe oru ngo a asynchronous na tupu m abịa, o nwere usoro dị mfe maka ọrụ cron-launching: loop na-enyocha oge dị ugbu a na ịmepụta otu coroutines site na ikpokọta - usoro a wee bụrụ nke a na-anabata ruo mgbe enwere ọtụtụ iri na narị narị ndị dị otú ahụ. Otú ọ dị, mgbe ọnụ ọgụgụ ha karịrị puku abụọ, aghaghị m iche echiche banyere ịhazi kwụ n'ahịrị ọrụ nkịtị na onye na-ere ahịa, ọtụtụ ndị ọrụ, na ihe ndị ọzọ.
Mbụ m kpebiri ịnwale Celery, nke m na-ejibu. N'ihi ọdịdị asynchronous nke ọrụ ahụ, etinyere m n'ime ajụjụ ahụ wee hụ
M ga-ekwu nke a, oru ngo ahụ na-adọrọ mmasị ma na-arụ ọrụ nke ọma na ngwa ndị ọzọ nke otu anyị, na onye edemede n'onwe ya na-ekwu na ya nwere ike ibugharị ya na mmepụta site na iji ọdọ mmiri asynchronous. Ma, dị mwute ikwu, ọ dabara m n'ezie, dị ka ọ tụgharịrị
N'akụkụ a, m malitere ile anya uzo ozo wee chọta ya! Ndị na-emepụta celery, kpọmkwem, dịka m ghọtara ya
Ọzọkwa, ị nwere ike ile anya
Gịnị ka anyị na-eme?
Yabụ, n'ime akụkọ dị mkpirikpi, m ga-egosi gị otu esi enweta data sitere na ọrụ ndabere site na iji Faust. Isi mmalite maka ihe atụ anyị ga-abụ, dị ka aha na-egosi,
PS Na-ekpe ikpe site na obi ike nke e dere isi ihe banyere nlekota oru, echere m na onye na-agụ na njedebe nke isiokwu gara aga ka ga-ele anya dị ka nke a:
Ihe oru ngo chọrọ
N'ihi na m kwere nkwa, ka anyị mee obere ndepụta nke ihe ọrụ kwesịrị inwe ike ime:
- Bulite ihe nchekwa na nyocha nke ha (gụnyere uru na mfu, akwụkwọ nguzozi, usoro ego - maka afọ gara aga) - mgbe niile.
- Bulite data akụkọ ihe mere eme (maka afọ azụmaahịa ọ bụla, chọta oke uru nke ọnụ ahịa mmechi nke azụmaahịa) - mgbe niile
- Bulite data azụmaahịa kacha ọhụrụ - mgbe niile
- Bulite ndepụta ahaziri ahazi maka nchekwa ọ bụla - mgbe niile
Dị ka a tụrụ anya, anyị na-ahọrọ aha maka ọrụ ahụ site na mmalite: horton
Anyị na-akwado akụrụngwa
Aha ahụ siri ike, agbanyeghị, naanị ihe ị ga - eme bụ dee obere nhazi maka docker - compose na kafka (na zookeeper - n'otu akpa), kafdrop (ọ bụrụ na anyị chọrọ ilele ozi na isiokwu), mongodb. Anyị na-enweta [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
Ọ dịghị ihe mgbagwoju anya ebe a ma ọlị. Ekwuwapụtara ndị na-ege ntị abụọ maka kafka: otu (n'ime) maka iji n'ime netwọk mejupụtara, na nke abụọ (mpụga) maka arịrịọ sitere n'èzí, ya mere ha zigara ya n'èzí. 2181 - ọdụ ụgbọ mmiri zookeeper. Ndị ọzọ, echere m, doro anya.
Ịkwadebe ọkpụkpụ nke ọrụ ahụ
N'ụdị nke isi, nhazi nke ọrụ anyị kwesịrị ịdị ka nke a:
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 *
*Ihe niile m kwuru Anyị emetụghị ya aka, anyị na-emepụta faịlụ efu.**
Anyị kere ihe owuwu. Ugbu a, ka anyị tinye ihe ndabere dị mkpa, dee nhazi wee jikọọ na mongodb. Agaghị m enye nkọwa zuru ezu nke faịlụ ndị dị na isiokwu ahụ, ka ọ ghara igbu oge, mana m ga-enye njikọ na nsụgharị ndị dị mkpa.
Ka anyị bido na ịdabere na meta gbasara ọrụ a -
Ọzọ, anyị na-amalite ịwụnye ndabere na ịmepụta virtualenv (ma ọ bụ ị nwere ike ịmepụta folda venv n'onwe gị wee rụọ ọrụ gburugburu):
pip3 install poetry (если ещё не установлено)
poetry install
Ugbu a ka anyị mepụta
Mgbe ị na-ejikọ na Mongo, ihe niile dị nnọọ mfe. ekwuputala
Gịnị ga-eme ọzọ?
Akụkọ ahụ adịchaghị ogologo, ebe ọ bụ na ebe a ka m na-ekwu maka mkpali na nkwadebe, yabụ atala m ụta - M na-ekwe nkwa na akụkụ nke ọzọ ga-enwe ihe omume na eserese.
Ya mere, n'akụkụ a nke na-esote anyị:
- Ka anyị dee obere onye ahịa maka mkpụrụedemede na aiohttp yana arịrịọ maka njedebe njedebe anyị chọrọ.
- Ka anyị mepụta onye nnọchi anya ga-anakọta data gbasara nchekwa na ọnụ ahịa akụkọ ihe mere eme maka ha.
isi: www.habr.com