From 3cc6a3a39a9279a771dc1743cc1187475034218f Mon Sep 17 00:00:00 2001 From: jsdio Date: Mon, 5 Jun 2023 14:33:08 +0300 Subject: [PATCH] main.py --- main.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..63e77a7 --- /dev/null +++ b/main.py @@ -0,0 +1,33 @@ +import logging + +import asyncio + +from environs import load_dotenv + +from extractor import ApiExtractor +from loader import EtlLoader +from settings import ApiConfig +from state import JsonFileStorage, State + +load_dotenv() + +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(funcName)s - %(message)s') + + +async def main(): + extractor = ApiExtractor() + storage = JsonFileStorage() + api = ApiConfig() + state = State(storage=storage) + loader = EtlLoader() + logging.info('Обработчик готов к работе.') + while True: + for iblock_id in api.iblocks: + abitrs = await extractor.get_extract_data(iblock_id=int(iblock_id), state=state) + for abitr in abitrs: + await loader.load_data(state=state, abitr=abitr, storage=storage, iblock_id=int(iblock_id)) + asyncio.sleep(10) + + +if __name__ == '__main__': + asyncio.run(main())