我开始我的扭曲应用程序:
application = twisted.application.service.Application('myserv')
my_service = MyService()
my_service.setServiceParent(application)
my_factory = twisted.internet.protocol.ServerFactory()
my_factory.protocol = MyProtocol
twisted.application.internet.TCPServer(port, my_factory).setServiceParent(application)
class MyService:
def startService(self):
#only synchronous code here?
在此服务可以接受客户端 tcp 连接之前,我需要建立与 redis 服务器的连接,这涉及到异步代码的执行。我想使用d=txredisapi.Connection()
或d = yield txredisapi.Connection()
与inlineCallbacks
. 这个 deferred 必须在服务启动之前触发(在客户端的 tcp 连接被接受之前)。启动的最佳地点是txredisapi.Connection()
什么?理想情况下,我想把它放在MyService
课堂上。