Чӣ тавр ман ҳамин тавр зиндагӣ кардам?
Чанде пеш ба ман лозим омад, ки дар пушти як лоиҳаи пурбор кор кунам, ки дар он бояд иҷрои мунтазами шумораи зиёди вазифаҳои заминавиро бо ҳисобҳои мураккаб ва дархостҳо барои хидматрасонии тарафи сеюм ташкил кунам. Лоиҳа асинхронӣ аст ва пеш аз омадани ман, он як механизми оддии иҷрои вазифаҳоро дошт: ҳалқаи санҷиши вақти ҷорӣ ва оғози гурӯҳҳои корутинҳо тавассути ҷамъ - ин равиш қобили қабул буд, то даме ки даҳҳо ва садҳо чунин корутинҳо вуҷуд надоштанд. , вале вакте ки шумораи онхо аз ду хазор гузашт, ба ман лозим омад, ки бо брокер, якчанд коргар ва гайра дар бораи ташкили навбати оддии супориш фикр кунам.
Аввалан ман қарор додам, ки Карафсро, ки қаблан истифода карда будам, санҷам. Аз сабаби табиати асинхронии лоиҳа, ман ба савол ғарқ шудам ва дидам
Ман инро мегӯям, лоиҳа хеле ҷолиб аст ва дар дигар замимаҳои дастаи мо хеле бомуваффақият кор мекунад ва худи муаллиф мегӯяд, ки ӯ тавонист онро бо истифода аз ҳавзи асинхронӣ дар истеҳсолот паҳн кунад. Аммо, мутаассифона, он ба ман аслан мувофиқ набуд, чунон ки маълум шуд
Дар ин бобат ман чустучу кардам алтернативаҳо ва онро ёфт! Офарандагони карафс, махсусан, чунон ки ман мефаҳмам
Инчунин, шумо метавонед назар кунед
Мо чӣ кор мекунем?
Ҳамин тавр, дар як қатор мақолаҳои кӯтоҳ, ман ба шумо нишон медиҳам, ки чӣ гуна маълумотро аз вазифаҳои замина бо истифода аз Фауст ҷамъ кунед. Сарчашмаи лоиҳаи намунавии мо, тавре аз номаш бармеояд, хоҳад буд
PS Аз рӯи эътимоде, ки нукта дар бораи мониторинг навишта шудааст, ман фикр мекунам, ки хонанда дар охири мақолаи охирин то ҳол чунин хоҳад буд:
Талаботи лоиҳа
Аз сабаби он, ки ман аллакай ваъда додаам, биёед як рӯйхати хурдеро тартиб диҳем, ки хидмат бояд чӣ кор карда метавонад:
- Боркунии коғазҳои қиматнок ва шарҳи онҳо (аз ҷумла фоида ва зиён, тавозун, гардиши пули нақд - барои соли охир) - мунтазам
- Маълумоти таърихиро бор кунед (барои ҳар як соли тиҷорат, арзишҳои шадиди нархи пӯшидаи савдоро пайдо кунед) - мунтазам
- Маълумоти охирини савдоро бор кунед - мунтазам
- Рӯйхати фармоишии нишондиҳандаҳоро барои ҳар як амният бор кунед - мунтазам
Тавре ки интизор мерафт, мо номеро барои лоиҳа интихоб мекунем: хортон
Мо инфрасохторро омода карда истодаем
Сарлавҳа бешубҳа қавӣ аст, аммо танҳо ба шумо лозим аст, ки конфигуратсияи хурд барои docker-compose бо кафка (ва зоопарк - дар як контейнер), kafdrop (агар мо хоҳем, ки паёмҳоро дар мавзӯъҳо бубинем), mongodb нависед. мегирем [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
Дар ин ҷо умуман чизи мураккаб нест. Ду шунаванда барои кафка эълон карда шуданд: яке (дохилӣ) барои истифода дар дохили шабакаи таркибӣ ва дуюм (берунӣ) барои дархостҳо аз берун, бинобар ин онҳо онро ба берун интиқол доданд. 2181 — бандари зоотехник. Боқимонда, ба фикрам, равшан аст.
Тайёр кардани скелети лоиҳа
Дар версияи асосӣ, сохтори лоиҳаи мо бояд чунин бошад:
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 *
*Ҳама чизеро, ки ман қайд кардам Мо ҳоло ба он даст нарасонем, мо танҳо файлҳои холӣ эҷод мекунем.**
Мо сохторе таъсис додем. Акнун биёед вобастагиҳои заруриро илова кунем, конфигуратсияро нависед ва ба mongodb пайваст шавед. Ман матни пурраи файлҳоро дар мақола намедиҳам, то ки онро таъхир накунам, аммо ман истинодҳоро ба версияҳои зарурӣ пешкаш мекунам.
Биёед аз вобастагӣ ва мета дар бораи лоиҳа оғоз кунем -
Баъдан, мо ба насб кардани вобастагӣ ва эҷоди virtualenv шурӯъ мекунем (ё шумо метавонед папкаи venv-ро худатон созед ва муҳити атрофро фаъол созед):
pip3 install poetry (если ещё не установлено)
poetry install
Акнун биёед эҷод кунем
Ҳангоми пайваст шудан ба Mongo, ҳама чиз хеле оддӣ аст. эълон кард
Баъд чӣ мешавад?
Мақола чандон тӯлонӣ нест, зеро дар ин ҷо ман танҳо дар бораи ҳавасмандкунӣ ва омодагӣ гап мезанам, аз ин рӯ маро айбдор накунед - ман ваъда медиҳам, ки қисми оянда амал ва графикӣ хоҳад дошт.
Ҳамин тавр, дар ин қисми оянда мо:
- Биёед як муштарии хурдеро барои alphavantage дар aiohttp бо дархостҳо барои нуқтаҳои ниҳоӣ ба мо нависед.
- Биёед агентеро эҷод кунем, ки маълумотро дар бораи коғазҳои қиматнок ва нархҳои таърихии онҳо ҷамъоварӣ кунад.
Манбаъ: will.com