เชนเซเช เชเชตเซเช เชเซเชตเซ เชฐเซเชคเซ เชเซเชตเชตเชพ เชเชตเซเชฏเซ?
เชฅเซเชกเชพ เชธเชฎเชฏ เชชเชนเซเชฒเชพ เชฎเชจเซ เชเช เชเซเชฌ เช เชฒเซเชก เชฅเชฏเซเชฒ เชชเซเชฐเซเชเซเชเซเชเชจเชพ เชฌเซเชเชเชจเซเชก เชชเชฐ เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชนเชคเซเช, เชเซเชฎเชพเช เชเชเชฟเชฒ เชเชฃเชคเชฐเซเช เช เชจเซ เชคเซเชคเซเชฏ-เชชเชเซเชท เชธเซเชตเชพเช เชฎเชพเชเซเชจเซ เชตเชฟเชจเชเชคเซเช เชธเชพเชฅเซ เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชชเซเชทเซเช เชญเซเชฎเชฟ เชเชพเชฐเซเชฏเซเชจเชพ เชจเชฟเชฏเชฎเชฟเชค เช เชฎเชฒเชจเซ เชเซเช เชตเชตเซเช เชเชฐเซเชฐเซ เชนเชคเซเช. เชชเซเชฐเซเชเซเชเซเช เช เชธเซเชฎเซเชณ เชเซ เช เชจเซ เชนเซเช เชเชตเซเชฏเซ เชคเซ เชชเชนเซเชฒเชพเช, เชคเซเชฎเชพเช เชเซเชฐเซเชจ-เชฒเซเชจเซเชเชฟเชเช เชเชพเชฐเซเชฏเซ เชฎเชพเชเซ เชเช เชธเชฐเชณ เชชเชฆเซเชงเชคเชฟ เชนเชคเซ: เชตเชฐเซเชคเชฎเชพเชจ เชธเชฎเชฏเชจเซ เชคเชชเชพเชธ เชเชฐเชคเซ เชฒเซเชช เช เชจเซ เชเซเชฐเซเชเซเชจเซเชธเชจเชพ เชเซเชฅเซเชจเซ เชญเซเชเซ เชเชฐเซเชจเซ เชฒเซเชจเซเช เชเชฐเชตเชพ - เช เช เชญเชฟเชเชฎ เชธเซเชตเซเชเชพเชฐเซเชฏ เชฌเชจเซเชฏเซ เชเซเชฏเชพเช เชธเซเชงเซ เชกเชเชจเซเช เช เชจเซ เชธเซเชเชเชกเซ เชเชตเชพ เชเซเชฐเซเชเซเชจ เชจ เชนเชคเชพ. เชเซ เชเซ, เชเซเชฏเชพเชฐเซ เชคเซเชฎเชจเซ เชธเชเชเซเชฏเชพ เชฌเซ เชนเชเชพเชฐเชจเซ เชตเชเชพเชตเซ เชเช, เชคเซเชฏเชพเชฐเซ เชฎเชพเชฐเซ เชฌเซเชฐเซเชเชฐ, เชเชฃเชพ เชเชพเชฎเชฆเชพเชฐเซ เชตเชเซเชฐเซ เชธเชพเชฅเซ เชธเชพเชฎเชพเชจเซเชฏ เชเชพเชฐเซเชฏ เชเชคเชพเชฐ เชเซเช เชตเชตเชพเชจเซเช เชตเชฟเชเชพเชฐเชตเซเช เชชเชกเซเชฏเซเช.
เชชเชนเซเชฒเชพ เชฎเซเช เชธเซเชฒเซเชฐเซ เช
เชเชฎเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช, เชเซเชจเซ เชฎเซเช เชชเชนเซเชฒเชพ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเชคเซ. เชชเซเชฐเซเชเซเชเซเชเชจเซ เช
เชธเซเชฎเซเชณ เชชเซเชฐเชเซเชคเชฟเชจเซ เชฒเซเชงเซ, เชฎเซเช เชชเซเชฐเชถเซเชจเชฎเชพเช เชกเซเชฌเชเซ เชฎเชพเชฐเซ เช
เชจเซ เชเซเชฏเซเช
เชนเซเช เช เชเชนเซเชถ, เชชเซเชฐเซเชเซเชเซเช เชเซเชฌ เช เชฐเชธเชชเซเชฐเชฆ เชเซ เช
เชจเซ เช
เชฎเชพเชฐเซ เชเซเชฎเชจเซ เช
เชจเซเชฏ เชเชชเซเชฒเชฟเชเซเชถเชจเซเชฎเชพเช เชเซเชฌ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ, เช
เชจเซ เชฒเซเชเช เชชเซเชคเซ เชเชนเซ เชเซ เชเซ เชคเซ เช
เชธเซเชฎเซเชณ เชชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชจเซ เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชฐเซเชฒ เชเชเช เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชนเชคเซ. เชชเชฐเชเชคเซ, เชเชฎเชจเชธเซเชฌเซ, เชคเซ เชเชฐเซเชเชฐ เชฎเชจเซ เช
เชจเซเชเซเชณ เชจ เชนเชคเซเช, เชเชพเชฐเชฃ เชเซ เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ
เช เชธเชเชฆเชฐเซเชญเซ, เชฎเซเช เชเซเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช เชตเชฟเชเชฒเซเชชเซ เช
เชจเซ เชคเซ เชฎเชณเซเชฏเซเช! เชธเซเชฒเชฐเชฟเชจเชพ เชจเชฟเชฐเซเชฎเชพเชคเชพเช, เชเชพเชธ เชเชฐเซเชจเซ, เชนเซเช เชคเซเชจเซ เชธเชฎเชเซเช เชเซเช
เชชเชฃ, เชคเชฎเซ เชเซเช เชถเชเซ เชเซ
เชเชชเชฃเซ เชถเซเช เชเชฐเซเช?
เชคเซเชฅเซ, เชฒเซเชเซเชจเซ เชเซเชเชเซ เชถเซเชฐเซเชฃเซเชฎเชพเช, เชนเซเช เชคเชฎเชจเซ เชฌเชคเชพเชตเซเชถ เชเซ เชซเซเชธเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชทเซเช เชญเซเชฎเชฟ เชเชพเชฐเซเชฏเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชเซเชตเซ เชฐเซเชคเซ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเซ. เช
เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃ เชชเซเชฐเซเชเซเชเซเช เชฎเชพเชเซเชจเซ เชธเซเชคเซเชฐเซเชค เชนเชถเซ, เชเซเชฎ เชเซ เชจเชพเชฎ เชธเซเชเชตเซ เชเซ,
เชชเซเชเชธ เชเซ เชเชคเซเชฎเชตเชฟเชถเซเชตเชพเชธ เชธเชพเชฅเซ เชฎเซเชจเชฟเชเชฐเชฟเชเช เชตเชฟเชถเซเชจเซ เชฎเซเชฆเซเชฆเซ เชฒเชเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ, เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชเซเชฒเซเชฒเชพ เชฒเซเชเชจเชพ เช เชเชคเซ เชตเชพเชเช เชนเชเซ เชชเชฃ เชเชเชเช เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชถเซ:
เชชเซเชฐเซเชเซเชเซเช เชเชฐเซเชฐเชฟเชฏเชพเชคเซ
เช เชนเชเซเชเชคเชจเซ เชเชพเชฐเชฃเซ เชเซ เชฎเซเช เชชเชนเซเชฒเซเชฅเซ เช เชตเชเชจ เชเชชเซเชฏเซเช เชเซ, เชเชพเชฒเซ เชธเซเชตเชพ เชถเซเช เชเชฐเชตเชพ เชธเชเซเชทเชฎ เชนเซเชตเซ เชเซเชเช เชคเซเชจเซ เชเช เชจเชพเชจเซ เชธเซเชเชฟ เชฌเชจเชพเชตเซเช:
- เชธเชฟเชเซเชฏเซเชฐเชฟเชเซเช เช เชจเซ เชคเซเชจเซเช เชตเชฟเชนเชเชเชพเชตเชฒเซเชเชจ เช เชชเชฒเซเชก เชเชฐเซ (เชจเชซเชพ เช เชจเซ เชจเซเชเชธเชพเชจ, เชฌเซเชฒเซเชจเซเชธ เชถเซเช, เชฐเซเชเชก เชชเซเชฐเชตเชพเชน - เชเซเชฒเซเชฒเชพ เชตเชฐเซเชท เชฎเชพเชเซ) - เชจเชฟเชฏเชฎเชฟเชคเชชเชฃเซ
- เชเชคเชฟเชนเชพเชธเชฟเช เชกเซเชเชพ เช เชชเชฒเซเชก เชเชฐเซ (เชฆเชฐเซเช เชเซเชฐเซเชกเชฟเชเช เชตเชฐเซเชท เชฎเชพเชเซ, เชเซเชฐเซเชกเชฟเชเชเชจเซ เชฌเชเชง เชเชฟเชเชฎเชคเชจเชพ เชเชคเซเชฏเชเชคเชฟเช เชฎเซเชฒเซเชฏเซ เชถเซเชงเซ) - เชจเชฟเชฏเชฎเชฟเชคเชชเชฃเซ
- เชจเชตเซเชจเชคเชฎ เชเซเชฐเซเชกเชฟเชเช เชกเซเชเชพ เช เชชเชฒเซเชก เชเชฐเซ - เชจเชฟเชฏเชฎเชฟเชคเชชเชฃเซ
- เชฆเชฐเซเช เชธเซเชฐเชเซเชทเชพ เชฎเชพเชเซ เชธเซเชเชเซเชจเซ เชเชธเซเชเชฎเชพเชเชเซเชก เชฏเชพเชฆเซ เช เชชเชฒเซเชก เชเชฐเซ - เชจเชฟเชฏเชฎเชฟเชคเชชเชฃเซ
เช เชชเซเชเซเชทเชพ เชฎเซเชเชฌ, เช เชฎเซ เชถเชฐเซเชเชคเชฅเซ เชชเซเชฐเซเชเซเชเซเช เชฎเชพเชเซ เชจเชพเชฎ เชชเชธเชเชฆ เชเชฐเซเช เชเซเช: เชนเซเชฐเซเชเซเชจ
เช เชฎเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เชคเซเชฏเชพเชฐ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชถเซเชฐเซเชทเช เชเซเชเซเชเชธเชชเชฃเซ เชฎเชเชฌเซเชค เชเซ, เชเซ เชเซ, เชคเชฎเชพเชฐเซ เชซเชเซเชค เชเชพเชซเชเชพ (เช
เชจเซ เชเซเชเซเชชเชฐ - เชเช เชเชจเซเชเซเชจเชฐเชฎเชพเช), เชเชพเชซเชกเซเชฐเซเชช (เชเซ เชเชชเชฃเซ เชตเชฟเชทเชฏเซเชฎเชพเช เชธเชเชฆเซเชถเชพเช เชเซเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซเชฏ), เชฎเซเชเชเซเชกเชฌเซ เชธเชพเชฅเซ เชกเซเชเชฐ-เชเชเชชเซเช เชฎเชพเชเซ เชเช เชจเชพเชจเซเช เชฐเซเชชเชฐเซเชเชพ เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เช
เชฎเชจเซ เชฎเชณเซ เชเซ [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 เชฅเซ เชเชจเซเชเซเช เชเชฐเซเช. เชนเซเช เชฒเซเชเชฎเชพเช เชซเชพเชเชฒเซเชจเซ เชธเชเชชเซเชฐเซเชฃ เชเซเชเซเชธเซเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชถ เชจเชนเซเช, เชเซเชฅเซ เชคเซเชฎเชพเช เชตเชฟเชฒเชเชฌ เชจ เชฅเชพเชฏ, เชชเชฐเชเชคเซ เชนเซเช เชเชฐเซเชฐเซ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชฒเชฟเชเชเซเชธ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชถ.
เชเชพเชฒเซ เชชเซเชฐเซเชเซเชเซเช เชตเชฟเชถเซ เชจเชฟเชฐเซเชญเชฐเชคเชพ เช
เชจเซ เชฎเซเชเชพ เชธเชพเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเช -
เชเชเชณ, เช เชฎเซ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเชตเชพเชจเซเช เช เชจเซ เชตเชฐเซเชเซเชฏเซเช เชฒเซเชจเชต เชฌเชจเชพเชตเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเช เชเซเช (เช เชฅเชตเชพ เชคเชฎเซ venv เชซเซเชฒเซเชกเชฐ เชเชพเชคเซ เชฌเชจเชพเชตเซ เชถเชเซ เชเซ เช เชจเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ เชธเชเซเชฐเชฟเชฏ เชเชฐเซ เชถเชเซ เชเซ):
pip3 install poetry (ะตัะปะธ ะตัั ะฝะต ัััะฐะฝะพะฒะปะตะฝะพ)
poetry install
เชนเชตเซ เชเชพเชฒเซ เชฌเชจเชพเชตเซเช
เชฎเซเชเชเซ เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชฌเชงเซเช เชเชเชฆเชฎ เชธเชฐเชณ เชเซ. เชเชพเชนเซเชฐเชพเชค เชเชฐเซ
เชเชเชณ เชถเซเช เชฅเชถเซ?
เชฒเซเช เชฌเชนเซ เชฒเชพเชเชฌเซ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เช เชนเซเช เชนเซเช เชซเชเซเชค เชชเซเชฐเซเชฐเชฃเชพ เช เชจเซ เชคเซเชฏเชพเชฐเซ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช, เชคเซเชฅเซ เชฎเชจเซ เชฆเซเชท เชจ เชเชชเซ - เชนเซเช เชตเชเชจ เชเชชเซเช เชเซเช เชเซ เชเชเชณเชจเชพ เชญเชพเชเชฎเชพเช เชเซเชฐเชฟเชฏเชพ เช เชจเซ เชเซเชฐเชพเชซเชฟเชเซเชธ เชนเชถเซ.
เชคเซเชฅเซ, เช เช เชเชเชณเชจเชพ เชญเชพเชเชฎเชพเช เชเชชเชฃเซ:
- เชเชพเชฒเซ aiohttp เชชเชฐ เชเชฒเซเชซเชพเชตเซเชจเซเชเซเช เชฎเชพเชเซ เชเช เชจเชพเชจเซ เชเซเชฒเชพเชฏเชเช เชฒเชเซเช เช เชจเซ เชเชชเชฃเชจเซ เชเชฐเซเชฐเซ เชเชจเซเชกเชชเซเชเชจเซเชเชจเซ เชตเชฟเชจเชเชคเซเช เชธเชพเชฅเซ.
- เชเชพเชฒเซ เชเช เชเชเชจเซเช เชฌเชจเชพเชตเซเช เชเซ เชคเซเชฎเชจเชพ เชฎเชพเชเซ เชธเชฟเชเซเชฏเซเชฐเชฟเชเซเช เช เชจเซ เชเชคเชฟเชนเชพเชธเชฟเช เชเชฟเชเชฎเชคเซเชจเซ เชกเซเชเชพ เชเชเชคเซเชฐเชฟเชค เชเชฐเชถเซ.
เชธเซเชฐเซเชธ: www.habr.com