3

我想运行一个监听两个不同端口的 Flask 实例,我的意思是,一些操作在端口 8080 和其他在 8090。有没有办法做到这一点?O 也许在线程中运行两个 Flask 应用程序实例?

添加上下文:基本上,我需要模拟生产环境,其中核心功能位于端口 8080 上,但由于某些安全限制,我需要为某些特定客户端的某些操作 (8090) 使用代理

例如,我的意思是在 8080 上

  • /存储库/{id}

几乎所有客户端都使用此操作,但是,某些特定客户端需要使用代理。例如在 8090 上

  • /reposproxy?method="get"&resource="repository"&query="id="xxxx"

基本上,拨打8080。

此外,我尝试为 app.run() 分叉或创建一个线程,但我无法成功运行。

4

1 回答 1

2

我使用多处理 python 功能使用 Fork(process) 方法解决了问题。我定义了应用 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()
于 2012-12-17T20:32:27.430 回答