扭曲的生产者与许多缓冲区的客户

时间:2014-02-17 05:00:37

标签: python twisted

我正在使用twisted将一些信息分发给多个客户。

我有一个使用IConsumer方法的消费者(实现write)被覆盖以写入所有连接的消费者客户端。

我有一个实现为生成器的数据源。

这是我的主要功能

factory = TelemetryFactory()
one2many = ConsumerToManyClientConsumers()
# writes from the datalines generator to one2many
telem = TelemetryProducer(one2many, datalines)
factory.setSource(one2many)
reactor.listenTCP(1234, factory)
reactor.run()

如何运行生成器(或TelemetryProducer),以便无论有多少客户端(0-10),它始终运行?

编辑:使用reactor.callInThread(fn)似乎给出了所需的行为,但CTRL + C没有正确退出程序。在CTRL + C之后,所有连接都被拒绝,但是控制不会返回到shell。

1 个答案:

答案 0 :(得分:0)