如何在扭曲的应用程序服务中包装zeromq绑定套接字?

时间:2013-06-23 22:16:59

标签: python twisted zeromq

我正在使用txzmqtwisted来构建一个侦听器服务,该服务将通过推拉模式处理一些数据。这是一个有效的代码:

from txzmq import ZmqFactory, ZmqEndpoint, ZmqPullConnection
from twisted.internet import reactor

zf = ZmqFactory()
endpoint = ZmqEndpoint('bind', 'tcp://*:5050')

def onPull(data):
    # do something with data

puller = ZmqPullConnection(zf, endpoint)
puller.onPull = onPull

reactor.run()

我的问题是 - 如何将此代码包装在扭曲的应用程序服务中?也就是说,如何将其包装到我以后可以运行的特定服务(例如MyService)中:

from twisted.application.service import Application

application = Application('My listener')
service = MyService(bind_address='*', port=5050)
service.setServiceParent(application)

使用twistd亚军?

1 个答案:

答案 0 :(得分:1)

IService定义了服务的含义。 Service是一个基类,在实现新服务时通常很有用。

将ZMQ初始化代码移动到实现startService的对象的IService方法中,可能是Service的子类。如果你想进行适当的清理,那么在该类的stopService方法中添加一些清理代码。