payload = None with open("xml.zip", "rb") as file: payload = file.read() chunk_size = 64 * 1024 content_length = len(payload) def app_chunked(environ, start_response): start_response('200 OK', [('Content-Type', 'application/zip'), ('Transfer-Encoding', 'chunked')]) sended = 0 while content_length > sended: end = sended + chunk_size yield payload[sended:end] sended = end def app(environ, start_response): start_response('200 OK', [('Content-Type', 'application/zip'), ('Content-Length', str(content_length))]) sended = 0 while content_length > sended: end = sended + chunk_size yield payload[sended:end] sended = end # import gc # gc.collect() # gc.set_threshold(50, 3, 3) # import tracemalloc # tracemalloc.start() def app_hello(environ, start_response): # start_response('200 OK', [('Content-Type', 'text/plain'), ('Content-Length', '13')]) start_response('200 OK', [('Content-Type', 'text/plain')]) return [ b'Hello, World!'] if __name__ == "__main__": # import fastwsgi # fastwsgi.run(wsgi_app=app_hello, host='127.0.0.1', port=8000, loglevel=0) # from meinheld import server # server.listen(("0.0.0.0", 8000)) # server.run(app_hello) from socketify import WSGI WSGI(app_hello).listen(8000, lambda config: print(f"Listening on port http://localhost:{config.port} now\n")).run(1) # def run_app(): # import fastwsgi # fastwsgi.run(wsgi_app=app_hello, host='127.0.0.1', port=8000) # import os # pid_list = [] # # fork limiting the cpu count - 1 # for _ in range(1, 8): # pid = os.fork() # # n greater than 0 means parent process # if not pid > 0: # run_app() # break # pid_list.append(pid) # run_app() # run app on the main process too :) # # sigint everything to gracefull shutdown # import signal # for pid in pid_list: # os.kill(pid, signal.SIGINT)