feat: default values, general item excludes, images, queueManager to manage multi worker messaging to telegram to prevent too many connections
Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
This commit is contained in:
@@ -2,9 +2,12 @@ import json
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
import threading
|
||||
|
||||
from datalayer.item_monitor import ItemMonitor
|
||||
from datalayer.general_monitor import GeneralMonitor
|
||||
from managers.worker import Worker
|
||||
from managers.queue_manager import QueueManager
|
||||
|
||||
def configure_logger():
|
||||
logging.getLogger("httpx").setLevel(logging.WARNING)
|
||||
@@ -22,17 +25,22 @@ def configure_logger():
|
||||
handlers=[console_handler, file_handler])
|
||||
|
||||
def parse_items_to_monitor():
|
||||
with open("args.json") as f:
|
||||
with open("workers.json") as f:
|
||||
args = json.load(f)
|
||||
items = [ItemMonitor.load_from_json(item) for item in args]
|
||||
return items
|
||||
if 'items' not in args:
|
||||
raise ValueError("Missing mandatory field: items")
|
||||
items = [ItemMonitor.load_from_json(item) for item in args['items']]
|
||||
general_args = GeneralMonitor.load_from_json(args['general'])
|
||||
return items, general_args
|
||||
|
||||
if __name__ == "__main__":
|
||||
configure_logger()
|
||||
items = parse_items_to_monitor()
|
||||
items, general_args = parse_items_to_monitor()
|
||||
|
||||
with ThreadPoolExecutor(max_workers=10) as executor:
|
||||
queue_manager = QueueManager()
|
||||
|
||||
with ThreadPoolExecutor(max_workers=1000) as executor:
|
||||
for item in items:
|
||||
worker = Worker(item)
|
||||
worker = Worker(item, general_args, queue_manager)
|
||||
executor.submit(worker.run)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user