41 lines
1017 B
Python
Raw Normal View History

2025-10-03 06:46:11 +02:00
from multiprocessing import Process, Manager
from socket import SOL_SOCKET, SO_REUSEADDR, socket
from aiohttp import web
import logging
logging.basicConfig(level=logging.DEBUG)
from main3 import init_app
import asyncio
def serve_multiple(app,workers):
sock = socket()
sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sock.bind(('0.0.0.0', 8080))
sock.set_inheritable(True)
setattr(app,"shared",Manager().dict())
app.shared['counter'] = 0
processes = []
for i in range(workers):
process = Process(
target=web.run_app,
name=f'worker-{i}',
kwargs=dict(app=app, sock=sock)
)
process.daemon = True
process.start()
processes.append(process)
try:
for process in processes:
process.join()
except KeyboardInterrupt:
pass
finally:
for process in processes:
process.terminate()
sock.close()
app = asyncio.run(init_app())
serve_multiple(app, 3)