我一直在使用flask,并注意到这种不寻常的行为。
我的flask应用程序在我的机器上设置为在端口5000上运行(它只有一个网络卡)。
当我尝试在我的机器上启动多个相同flask应用程序实例时。
我的期望:
当尝试在相同的端口上绑定下一个实例时,会出现端口地址已在使用错误。
实际发生的情况:
它们都成功启动并绑定到相同的端口。大多数我所使用的传统服务器都不会出现这种行为。然而值得庆幸的是,在向服务器发出REST API调用时,只有'n'个进程中的一个进程被触发。
操作系统:Windows
有人能解释一下这种行为为什么会发生,以及如何确保flask在这种情况下不会成功启动该进程吗?
netstat -aon | find "5000"
TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 37036
TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 5024
TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 61684
以上是并行运行的3个进程。
附加说明:
- I am using this in a virtualenv.
The way I have written my flask invocation.
if __name__ == "__main__": main() app.run(port=5000)
Running the code as
python3 <filename>.py
at the command prompt.