Ndinakhala bwanji chonchi?
Osati kale kwambiri ndinayenera kugwira ntchito kumbuyo kwa polojekiti yodzaza kwambiri, momwe kunali kofunika kukonzekera kuchitidwa nthawi zonse kwa ntchito zambiri zakumbuyo ndi mawerengedwe ovuta ndi zopempha za ntchito za chipani chachitatu. Pulojekitiyi ndiyosasinthika ndipo ndisanabwere, inali ndi njira yosavuta yopangira ntchito zoyambitsa cron: kuzungulira komwe kumayang'ana nthawi yomwe ilipo ndikuyambitsa magulu a coroutines kudzera pagulu - njira iyi idakhala yovomerezeka mpaka patakhala ma coroutines ambiri. , komabe, pamene chiwerengero chawo chinaposa zikwi ziwiri, ndinayenera kuganiza za kukonza mzere wa ntchito yabwino ndi broker, antchito angapo, ndi zina zotero.
Poyamba ndinaganiza zoyesa Selari, yomwe ndidagwiritsapo kale. Chifukwa cha kusamvana kwa polojekitiyi, ndidalowa mufunso ndikuwona
Ndikunena izi, polojekitiyi ndi yosangalatsa kwambiri ndipo imagwira ntchito bwino muzogwiritsira ntchito zina za gulu lathu, ndipo wolemba mwiniyo akunena kuti adatha kuyipanga kupanga pogwiritsa ntchito dziwe la asynchronous. Koma, mwatsoka, sizinandigwirizane ndi ine, monga momwe zinakhalira
Pankhani imeneyi, ndinayamba kuyang'ana njira zina ndipo anapeza! Omwe amapanga udzu winawake, makamaka, momwe ndikumvera
Komanso, mukhoza kuyang'ana
Kodi timatani?
Chifukwa chake, muzolemba zazifupi, ndikuwonetsani momwe mungasonkhanitsire deta kuchokera kuzinthu zakumbuyo pogwiritsa ntchito Faust. Magwero a projekiti yathu yachitsanzo adzakhala, monga dzina likunenera,
PS Potengera chidaliro chomwe mfundo yowunikira idalembedwa, ndikuganiza kuti wowerenga kumapeto kwa nkhani yomaliza aziwoneka motere:
Zofunikira za polojekiti
Chifukwa chakuti ndalonjeza kale, tiyeni tipange mndandanda wochepa wa zomwe utumiki uyenera kuchita:
- Kwezani zotetezedwa ndikuwunika mwachidule (kuphatikiza phindu ndi zotayika, zowerengera, kuyenda kwandalama - kwa chaka chatha) - pafupipafupi
- Kwezani mbiri yakale (pachaka chilichonse chamalonda, pezani mitengo yotsika mtengo yotseka) - pafupipafupi
- Kwezani zaposachedwa zamalonda - pafupipafupi
- Kwezani makonda mndandanda wa zizindikiro pa chitetezo chilichonse - pafupipafupi
Monga zikuyembekezeredwa, timasankha dzina la polojekiti kuyambira pachiyambi: horton
Tikukonzekera zomangamanga
Mutuwo ndi wamphamvu, komabe, zomwe muyenera kuchita ndikulemba kakhazikitsidwe kakang'ono ka docker-compose ndi kafka (ndi zookeeper - mu chidebe chimodzi), kafdrop (ngati tikufuna kuyang'ana mauthenga pamitu), mongodb. Timapeza [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
Palibe chovuta apa konse. Omvera awiri adalengezedwa kuti kafka: imodzi (yamkati) kuti igwiritsidwe ntchito mkati mwa netiweki yophatikizika, ndipo yachiwiri (yakunja) pazopempha kuchokera kunja, kotero adayitumiza kunja. 2181 - doko la zookeeper. Zina zonse, ndikuganiza, ndizomveka.
Kukonzekera chigoba cha polojekiti
Mu mtundu woyambira, kapangidwe ka polojekiti yathu iyenera kuwoneka motere:
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 *
*Zonse zomwe ndidaziwona Sitikugwirabe, timangopanga mafayilo opanda kanthu.**
Tinapanga dongosolo. Tsopano tiyeni tiwonjezere zodalira zofunika, lembani config ndikulumikiza ku mongodb. Sindidzapereka zolemba zonse za mafayilo omwe ali m'nkhaniyi, kuti ndisachedwe, koma ndipereka maulalo kumasulidwe oyenera.
Tiyeni tiyambe ndi kudalira ndi meta za polojekiti -
Kenako, tikuyamba kukhazikitsa zodalira ndikupanga virtualenv (kapena mutha kupanga chikwatu cha venv nokha ndikuyambitsa chilengedwe):
pip3 install poetry (если ещё не установлено)
poetry install
Tsopano tiyeni tipange
Mukalumikizana ndi Mongo, zonse ndi zophweka. adalengeza
Nanga n’ciani cidzacitika pambuyo pake?
Nkhaniyi siitalika kwambiri, popeza pano ndikungonena za chilimbikitso ndi kukonzekera, choncho musandidzudzule - ndikulonjeza kuti gawo lotsatira lidzakhala ndi zochitika ndi zojambula.
Kotero, mu gawo lotsatirali ife:
- Tiyeni tilembe makasitomala ang'onoang'ono a alphavantage pa aiohttp ndi zopempha zomaliza zomwe tikufuna.
- Tiyeni tipange wothandizila yemwe angasonkhanitse zidziwitso zachitetezo ndi mitengo yakale ya iwo.
Source: www.habr.com