【发布时间】:2020-09-15 00:31:18
【问题描述】:
我的问题是:
如果我在事件循环线程中收到多个事件序列,我如何处理每个序列阻塞和有序但不同的序列由整个工作线程池处理。
用例:
我在 vert.x 中有一个 gRPC 客户端,它有 4 个事件循环和 20 个工作线程。我在 10 个线程中开始远程调用。
- 每次调用都会收到 2 个事件 StreamObserver.onNext 和 StreamObserver.onCompleted
- 在每个此类事件中,我都希望以这样的方式开始阻塞任务,即 gRPC 调用 onNext 和 onClose 是有序的,而对于不同的 gRPC 调用,事件在 不同的工作线程。
目标是将调用执行分配给尽可能多的工作线程,但要对单个调用的事件进行排序。
- 如果我使用 executeBlocking 和有序 true - 它们将在每个事件线程的工作线程中执行。
- 如果 false - 处理 onNext 和 onClose 将没有顺序。
【问题讨论】:
标签: vert.x