![]() |
1
1
编辑 :突发新闻;见下文·我最近决定做一些类似的事情,结果是 pqueue_fetcher 模块。它最终主要是一种学习努力:我学到了,除其他外,几乎可以肯定的是,使用像 twisted 而不是试图以任何可靠性杀死Python线程。
也就是说,模块中有代码或多或少地回答了你的问题。它基本上由一个类组成,该类的对象可以被设置为从优先级队列中获取位置并将其放入
一路上我创造了
terminable_thread
模块,它只是将我能找到的最成熟的代码变体打包为
可能我遇到的最大障碍是引发异步异常
我写了一个简单的解决方法,它只是做一些随机的事情(在本例中是从生成器中获取一个值)来分解代码中的“原子性”(不确定这是否是它的实际内容)。此解决方案可以通过
因此,在发现这一有趣的数据之后,我的建议是避免使用这种技术(即调用
在任何情况下,如果需要保证接收到其整个数据集的任何请求(即对服务器的确认)都会转发到,那么这仍然不起作用。
我还没有学习Twisted,但是作为首选的python异步网络框架,我希望它必须有一些优雅或至少可行的方式来处理这些细节。我希望它能提供一种并行的方法来实现从非网络源(如本地文件存储或数据库等)获取数据,因为我想构建一个应用程序,以一种中等不可知的方式从各种源收集数据。 不管怎样,如果你仍然打算自己想出一个方法来管理线程,你也许可以从我的努力中学习。希望这有帮助。 _·_·_·_·_·_·_·_·_·_·_·这只是在:
我已经意识到,我认为已经稳定下来的测试实际上没有,并且给出了不一致的结果。这似乎与上述问题有关,但例外处理和
|