【发布时间】:2017-07-21 10:01:31
【问题描述】:
我可以运行这个 swagger 服务器吗
app = connexion.App(__name__, specification_dir='./swagger/')
app.app.json_encoder = JSONEncoder
app.add_api('swagger.yaml', arguments={'title': ''})
app.run(port=8080)
还有这个 websocket 服务器
from autobahn.twisted.websocket import WebSocketServerProtocol
import sys
from twisted.python import log
from twisted.internet import reactor
log.startLogging(sys.stdout)
from autobahn.twisted.websocket import WebSocketServerFactory
factory = WebSocketServerFactory()
factory.protocol = MyServerProtocol
reactor.listenTCP(9000, factory)
reactor.run()
在两个不同的线程中,在 python 中?最终,当id 发布到我的swagger API 时,我想将此id 转发到我的websocket 服务器,然后通过现有的匹配连接将其发送到我的websocket 客户端。所以我想如果我在两个线程中运行这两个,也许我可以将这个id 作为变量共享。
【问题讨论】:
-
除非 Swagger 或 Twisted websocket 中的某些东西主动阻止线程,只要两者都在您的服务后台运行,它就没有理由不起作用。但是,考虑到不同的范围,最好进行关注点分离,并通过使用某种形式的 IPC 在这两者之间交换数据,让它们作为单独的实例运行。 Interprocess Communication and Networking 上列出了几种内置方法,并且有大量方法可以通过外部资源来实现。
标签: python multithreading websocket swagger twisted