tig-monorepo/tig-benchmarker/master/main.py
2025-11-25 21:48:58 +00:00

54 lines
1.6 KiB
Python

import logging
import os
import time
from master.data_fetcher import *
from master.job_manager import *
from master.precommit_manager import *
from master.slave_manager import *
from master.submissions_manager import *
from master.client_manager import *
from common.utils import FromDict
logger = logging.getLogger(os.path.splitext(os.path.basename(__file__))[0])
def main():
last_block_id = None
client_manager = ClientManager()
client_manager.start()
data_fetcher = DataFetcher()
job_manager = JobManager()
precommit_manager = PrecommitManager()
submissions_manager = SubmissionsManager()
slave_manager = SlaveManager()
slave_manager.start()
while True:
try:
data = data_fetcher.run()
if data["block"].id != last_block_id:
last_block_id = data["block"].id
client_manager.on_new_block(**data)
job_manager.on_new_block(**data)
submissions_manager.on_new_block(**data)
precommit_manager.on_new_block(**data)
job_manager.run()
submit_precommit_req = precommit_manager.run()
submissions_manager.run(submit_precommit_req)
slave_manager.run()
except Exception as e:
import traceback
traceback.print_exc()
logger.error(f"{e}")
finally:
time.sleep(5)
if __name__ == "__main__":
logging.basicConfig(
format='%(levelname)s - [%(name)s] - %(message)s',
level=logging.DEBUG if os.environ.get("VERBOSE") else logging.INFO
)
main()