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