Kwenzeka kanjani ukuba ngiphile kanje?
Esikhathini esingengakanani esidlule kwakudingeka ngisebenze ngemuva kwephrojekthi elayishwe kakhulu, lapho kwakudingeka khona ukuhlela ukukhishwa okuvamile kwenani elikhulu lemisebenzi yangemuva ngezibalo eziyinkimbinkimbi kanye nezicelo zezinsizakalo zezinkampani zangaphandle. Le phrojekthi i-asynchronous futhi ngaphambi kokuthi ngifike, ibinomshini olula wokwethulwa kwe-cron: iluphu ebheka isikhathi samanje kanye nokwethulwa kwamaqembu ama-coroutines ngokuhlangana - le ndlela yamukeleka kuze kube yilapho sekukhona inqwaba namakhulu ama-coroutines anjalo. , nokho, lapho inani labo lidlula izinkulungwane ezimbili, kwadingeka ngicabange ngokuhlela umugqa wemisebenzi evamile nomthengisi, izisebenzi eziningana, njalonjalo.
Okokuqala nginqume ukuzama i-Celery, engangiyisebenzise ngaphambili. Ngenxa yokungavumelani kwephrojekthi, ngingene embuzweni ngabona
Ngizokusho lokhu, iphrojekthi iyathakazelisa kakhulu futhi isebenza ngempumelelo kwezinye izinhlelo zokusebenza zethimba lethu, futhi umbhali ngokwakhe uthi ukwazile ukuyikhipha ekukhiqizeni ngokusebenzisa ichibi elingavumelanisiwe. Kodwa, ngeshwa, akuzange kungifanele ngempela, njengoba kwenzeka
Mayelana nalokhu, ngaqala ukubheka ezinye izindlela futhi wayithola! Abadali besilimo esidliwayo esinamagatsha anamanzi, ikakhulukazi, njengoba ngikuqonda
Futhi, ungabheka
Senzenjani?
Ngakho-ke, ochungechungeni olufushane lwezihloko, ngizokukhombisa ukuthi ungayiqoqa kanjani idatha kusuka emisebenzini yangemuva usebenzisa i-Faust. Umthombo wephrojekthi yethu yesibonelo uzoba, njengoba igama liphakamisa,
I-PS Ngokubheka ukuzethemba okwabhalwa ngakho iphuzu mayelana nokuqapha, ngicabanga ukuthi umfundi ekupheleni kwesihloko sokugcina usazobukeka kanje:
Izidingo zephrojekthi
Ngenxa yokuthi sengivele ngithembisile, masenze uhlu oluncane lwalokho okumele kwenziwe yisevisi:
- Layisha izibambiso kanye nohlaka lwazo (okuhlanganisa inzuzo nokulahlekelwa, ishidi lebhalansi, ukuhamba kwemali - ngonyaka odlule) - njalo
- Layisha idatha yomlando (ngonyaka ngamunye wokuhweba, thola amanani adlulele wentengo yokuvala yokuhweba) - njalo
- Layisha idatha yokuhweba yakamuva - njalo
- Layisha uhlu olwenziwe ngokwezifiso lwezinkomba zokuvikela ngakunye - njalo
Njengoba kulindelekile, sikhetha igama lephrojekthi kusukela ekuqaleni: Horton
Silungisa ingqalasizinda
Isihloko siqinile impela, nokho-ke, okudingeka ukwenze nje ukubhala ukulungiselelwa okuncane kwe-docker-compose nge-kafka (kanye ne-zookeeper - esitsheni esisodwa), i-kafdrop (uma sifuna ukubheka imilayezo ezihlokweni), mongodb. Siyathola [i-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
Akukho lutho oluyinkimbinkimbi lapha. Abalaleli ababili bamenyezelwe nge-kafka: eyodwa (yangaphakathi) ukuze isetshenziswe ngaphakathi kwenethiwekhi eyinhlanganisela, neyesibili (yangaphandle) yezicelo ezivela ngaphandle, ngakho bayidlulisela ngaphandle. 2181 - ichweba lezookeeper. Okunye, ngicabanga, kucacile.
Ukulungisa uhlaka lwamathambo ephrojekthi
Kunguqulo eyisisekelo, ukwakheka kwephrojekthi yethu kufanele kubukeke kanje:
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 *
*Konke engikuqaphelile Asikayithinti, sivele sidale amafayela angenalutho.**
Sakhe isakhiwo. Manje ake sengeze ukuncika okudingekayo, bhala i-config bese uxhuma ku-mongodb. Ngeke nginikeze umbhalo ogcwele wamafayela ku-athikili, ukuze ngingayibambezeli, kodwa ngizohlinzeka ngezixhumanisi ezinguqulweni ezidingekayo.
Ake siqale ngokuncika kanye nemeta mayelana nephrojekthi -
Okulandelayo, siqala ukufaka ukuncika nokudala i-virtualenv (noma ungakha ifolda ye-venv ngokwakho futhi wenze kusebenze imvelo):
pip3 install poetry (если ещё не установлено)
poetry install
Manje masidale
Uma uxhuma ku-Mongo, yonke into ilula. kumenyezelwe
Kuzokwenzekani ngokulandelayo?
Lesi sihloko asiside kakhulu, njengoba lapha ngikhuluma kuphela ngokugqugquzela kanye nokulungiselela, ngakho ungangisoli - ngiyathembisa ukuthi ingxenye elandelayo izoba nesenzo kanye nemifanekiso.
Ngakho, kule ngxenye elandelayo si:
- Masibhale iklayenti elincane le-alphavantage ku-aiohttp ngezicelo zamaphoyinti esiwadingayo.
- Masidale i-ejenti ezoqoqa idatha yezibambiso nezintengo zomlando yazo.
Source: www.habr.com