问题描述
有一个使用Twisted的外部函数(另一个模块),因此为了使其正常工作,我需要调用Reactor.run() 但是我想多次调用该函数。我该怎么做? (我收到ReactorNotRestartable错误)
解决方法
如果要调用一个API,并且该API的实现调用reactor.run
,则不能多次调用它。
也许您可以调用一个备用API,该API执行除调用reactor.run
以外的所有操作。然后,您可以在自己的代码中管理reactor.run
调用(确保只调用一次),同时根据需要多次调用该备用API。
您可以使用[twisted
] [1]在后台线程中运行crochet
函数,然后在执行完成时将结果带入前台进程。只是不要执行reactor.stop()
,因为那样可能会使事情搞砸。另外,crochet
将负责停止反应堆。