ねじれたアプリケーションを次のように開始します。
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
理想的にはクラスに入れたいです。