Viewing File: /home/ubuntu/codegamaai-test/rag_drive/RagDrive/Tars.py

import threading
import subprocess
import os
from src.constants import *
import langchain
from fastapi import FastAPI

from app import create_app as create_app1
from app2 import create_app as create_app2
from app3 import create_app as create_app3

from multiprocessing import Process
import uvicorn
import logging

def configure_logging(app_name):
    # Create and configure logger
    logging.basicConfig(filename=f'{app_name}.log',
                        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S',
                        level=logging.INFO)
    # Example of adding a logger
    logger = logging.getLogger(app_name)
    logger.info(f'Starting {app_name}')


# def run_app(app, host, port):
#     uvicorn.run(app, host=host, port=port)


def run_app1():
    from app import create_app
    app = create_app()
    configure_logging('app1')
    uvicorn.run(app, host="0.0.0.0", port=6003, ssl_keyfile="privkey.pem",ssl_certfile="fullchain.pem" )

def run_app2():
    from app2 import create_app
    app = create_app()
    configure_logging('app2')
    uvicorn.run(app, host="0.0.0.0", port=6004, ssl_keyfile="privkey.pem",ssl_certfile="fullchain.pem")

def run_app3():
    from app3 import create_app
    app = create_app()
    configure_logging('app3')
    uvicorn.run(app, host="0.0.0.0", port=6005, ssl_keyfile="privkey.pem",ssl_certfile="fullchain.pem")

def main():


    # Create separate processes for each app
    # p1 = Process(target=run_app, args=(app1, "0.0.0.0", 5003))
    # p2 = Process(target=run_app, args=(app2, "0.0.0.0", 5004))
    # p3 = Process(target=run_app, args=(app3, "0.0.0.0", 5005))

    p1 = Process(target=run_app1)
    p2 = Process(target=run_app2)
    p3 = Process(target=run_app3)

    # Start the processes
    p1.start()
    p2.start()
    p3.start()

    # Join the processes to the main process
    p1.join()
    p2.join()
    p3.join()

if __name__ == "__main__":
    main()
    print("All scripts started successfully.")
    print("Haive Bot is running and You can access it in your browser.")
Back to Directory File Manager