مون کي اهڙي زندگي ڪيئن آئي؟
ڪجهه عرصو اڳ مون کي هڪ انتهائي لوڊ ٿيل منصوبي جي پس منظر تي ڪم ڪرڻو پيو، جنهن ۾ اهو ضروري هو ته وڏي تعداد ۾ پس منظر جي ڪمن جي باقاعده عمل کي منظم ڪرڻ لاء پيچيده حساب ۽ ٽئين پارٽي جي خدمتن لاء درخواستون. پروجيڪٽ غير مطابقت پذير آهي ۽ منهنجي اچڻ کان اڳ، ان ۾ ڪرون لانچنگ ڪمن لاءِ هڪ سادو ميکانيزم هو: هڪ لوپ موجوده وقت کي جانچڻ ۽ گڏ ڪرڻ جي ذريعي ڪوروٽين جي گروپن کي لانچ ڪرڻ - اهو طريقو قابل قبول ثابت ٿيو جيستائين اهڙا درجن ۽ سوين ڪوروٽين موجود نه هئا. بهرحال، جڏهن انهن جو تعداد ٻه هزار کان وڌي ويو، مون کي هڪ بروکر، ڪيترن ئي ڪارڪنن، وغيره سان گڏ هڪ معمولي ڪم جي قطار کي منظم ڪرڻ بابت سوچڻو پيو.
پهرين مون فيصلو ڪيو ته سيليري کي آزمايو، جيڪو مون اڳ ۾ استعمال ڪيو هو. پروجيڪٽ جي غير مطابقت واري نوعيت جي ڪري، مون سوال ۾ ٻڏي ويو ۽ ڏٺو
مان هن کي چوندس، پروجيڪٽ تمام دلچسپ آهي ۽ اسان جي ٽيم جي ٻين ايپليڪيشنن ۾ ڪافي ڪاميابي سان ڪم ڪري ٿو، ۽ ليکڪ پاڻ چوي ٿو ته هو ان کي پيداوار ۾ رول آئوٽ ڪرڻ جي قابل ٿي ويو هڪ غير معمولي پول استعمال ڪندي. پر، بدقسمتي سان، اهو واقعي مون کي مناسب نه هو، جيئن اهو نڪتو
ان سلسلي ۾، مون کي ڏسڻ شروع ڪيو متبادل ۽ اهو مليو! سيلري جي تخليق ڪندڙ، خاص طور تي، جيئن مان سمجهان ٿو
پڻ، توهان ڏسي سگهو ٿا
اسان ڇا ڪريون؟
تنهن ڪري، مضمونن جي هڪ مختصر سيريز ۾، مان توهان کي ڏيکاريندس ته ڪيئن ڊيٽا گڏ ڪجي پس منظر جي ڪمن مان فاسٽ استعمال ڪندي. اسان جي مثال جي منصوبي جو ذريعو ٿيندو، جيئن نالو مشورو ڏئي ٿو،
پي ايس ان اعتماد سان ڏسندي جنهن سان مانيٽرنگ جو نقطو لکيو ويو هو، مان سمجهان ٿو ته آخري مضمون جي آخر ۾ پڙهندڙ اڃا به ڪجهه هن طرح نظر ايندو:
پروجيڪٽ گهرجون
انهي حقيقت جي ڪري ته مون اڳ ۾ ئي واعدو ڪيو آهي، اچو ته هڪ ننڍڙي فهرست ٺاهيو جيڪو خدمت ڪرڻ جي قابل هوندو:
- اپلوڊ سيڪيورٽيز ۽ انهن جو هڪ جائزو (بشمول منافعو ۽ نقصان، بيلنس شيٽ، نقد وهڪري - گذريل سال لاءِ) - باقاعده
- تاريخي ڊيٽا اپلوڊ ڪريو (هر واپاري سال لاءِ، واپار جي بند قيمت جي انتهائي قدر ڳوليو) - باقاعده
- تازه ترين واپاري ڊيٽا اپ لوڊ ڪريو - باقاعده
- هر سيڪيورٽي لاءِ اشارن جي حسب ضرورت لسٽ اپ لوڊ ڪريو - باقاعدي
جيئن توقع ڪئي وئي، اسان شروع کان منصوبي لاء نالو چونڊيو ٿا: هارٽن
اسان انفراسٽرڪچر تيار ڪري رهيا آهيون
عنوان يقيني طور تي مضبوط آهي، تنهن هوندي به، توهان کي صرف هڪ ننڍڙي ترتيب لکڻ جي ضرورت آهي ڊاڪر-ڪمپوز سان ڪافڪا (۽ زوڪيپر - هڪ ڪنٽينر ۾)، ڪيفڊراپ (جيڪڏهن اسان عنوانن ۾ پيغام ڏسڻ چاهيون ٿا)، 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 *
*سڀ ڪجهه مون نوٽ ڪيو اسان اڃا تائين ان کي هٿ نه ڪيو آهي، اسان صرف خالي فائلون ٺاهيندا آهيون.**
اسان هڪ ڍانچي ٺاهي. ھاڻي اچو ته ضروري انحصار شامل ڪريو، config لکو ۽ منگوڊب سان ڳنڍيو. مان مضمون ۾ فائلن جو مڪمل متن مهيا نه ڪندس، جيئن ان ۾ دير نه ٿئي، پر آئون ضروري نسخن جي لنڪ فراهم ڪندس.
اچو ته منصوبي بابت انحصار ۽ ميٽا سان شروع ڪريون -
اڳيون، اسان انحصار کي انسٽال ڪرڻ ۽ هڪ ورچوئلنوف ٺاهڻ شروع ڪيو (يا توهان venv فولڊر پاڻ ٺاهي سگهو ٿا ۽ ماحول کي چالو ڪري سگهو ٿا):
pip3 install poetry (если ещё не установлено)
poetry install
هاڻي اچو ته ٺاهي
جڏهن منگو سان ڳنڍڻ، هر شيء بلڪل سادو آهي. اعلان ڪيو
اڳتي ڇا ٿيندو؟
مضمون تمام ڊگهو نه آهي، ڇاڪاڻ ته هتي مان صرف حوصلا افزائي ۽ تياري بابت ڳالهائي رهيو آهيان، تنهنڪري مون کي الزام نه ڏيو - مان واعدو ڪريان ٿو ته ايندڙ حصي ۾ عمل ۽ گرافڪس هوندا.
تنهن ڪري، هن ايندڙ حصي ۾ اسين:
- اچو ته aiohttp تي alphavantage لاءِ ھڪڙو ننڍڙو ڪلائنٽ لکون جن جي اسان کي ضرورت آھي آخري پوائنٽن جي درخواستن سان.
- اچو ته هڪ ايجنٽ ٺاهيو جيڪو انهن لاء سيڪيورٽي ۽ تاريخي قيمتن تي ڊيٽا گڏ ڪندو.
جو ذريعو: www.habr.com