我想运行一个Flask实例,它侦听两个不同的端口,我的意思是,一些操作在8080端口,另一些在8090.有没有办法做到这一点? O可能在线程中运行两个Flask app实例?
添加上下文:基本上,我需要模拟生产环境,其中核心功能在端口8080上,但由于某些安全限制,我需要为某些特定客户端使用代理进行某些操作(8090)
我的意思是8080例如
几乎所有客户端都会使用此操作,但某些特定客户端需要使用代理。 以8090为例
此外,我尝试为app.run()分叉或创建一个线程,但我无法成功运行。
答案 0 :(得分:2)
我使用多处理python功能使用Fork(进程)方法解决了问题。我定义为应用Flask,然后运行进程
def info(title):
print(title)
print('module name:', __name__)
if hasattr(os, 'getppid'): # only available on Unix
print('parent process:', os.getppid())
print('process id:', os.getpid())
def startServer(inDebug, port):
print "Starting Main Mock Server"
app.run(debug=inDebug, port=port)
def startProxyServer(inDebug, port):
print "Starting JSONP Mock Server Proxy"
appJsonp.run(debug=inDebug, port=jsonpPort)
if __name__ == '__main__':
info('Main Line Starting')
p = mp.Process(target=startServer, args=(False, port))
p.deamon = True
p.start()
p1 = mp.Process(target=startProxyServer, args=(False, port))
p1.deamon = True
p1.start()
p.join()
p1.join()