python - 单独线程上的扭曲 react 器调用

标签 python multithreading twisted

我正在开发一个涉及使用 twisted api 通过 tcp 获取数据的应用程序。 我们的进程是监听器应用程序,它不断监听事件并执行以下操作。

  1. 处理事件通知并构建字典以将其发送给第三方应用
  2. 为了完成字典..它使用扭曲的 api 调用一个进程来获取一些额外的数据并完成字典。

单次执行后我无法在主线程上执行扭曲的 api 执行.. react 堆停止并且主线程没有进一步的进展发生..

我想要的是:

  1. 对于每个事件通知---假脱机一个新线程通过 tcp 进行扭曲调用以获取数据。
  2. 加入mainThread和newThread等待完成
  3. 获取结果,与半建字典合并并将其发送到第三方应用。

假设我在主线程中收听 eventObj1 ---

处理包括步骤ex step1---step2---step3---step4--send to party。

假设第 4 步涉及通过 tcp 获取数据,我们应该等到结果可用,然后才能完成字典并将其发送给第三方。

因此,当 eventObj1 出现时,我将其排队等待通过 tcp 获取。这样做时我说 reactor.start() ( react 器在主线程中启动) 和一段时间后我得到数据并调用回调 dict 是为 event1 构建的并发送给第三方。

但是我无法为数据获取排队更多事件,直到我执行 reactor.stop() ..因为直到 reactor.stop() 没有被调用主线程无法返回处理 eventObj2..

所以我认为,我需要的是在单独的线程中启动 react 器......并在主程序退出之前保持从主线程停止 react 器排队事件

最佳答案

您不需要任何线程。你只是想让 react 堆做很多事情,这实际上是 react 堆的全部意义所在。请参阅此问题以获取解释:Twisted reactor starting multiple times in a single program?

关于python - 单独线程上的扭曲 react 器调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12372444/

相关文章:

python - 来自模型的嵌套排列

python - 遍历两个列表并组合项目

python - Benefits of twisted-suds - 使用 python suds SOAP 库的异步方式

python - Twisted - FTP 服务器的简单文件完成事件

python - Twisted - 在不重新加载的情况下更新网页内容

python - 来自嵌套字典的 Pandas 数据框( Elasticsearch 结果)

python - 使用 matplotlib 绘制特征行为

java - Java抛出InterruptedException后的中断状态

android - 线程实现

java - 如何查看线程正在等待哪个监视器?