当前位置: 首页 > 知识库问答 >
问题:

如何根据可用性优先选择一个流而不是另一个流?

崔高远
2023-03-14

给定Flink中的两个流A和B,我想处理流A,直到它为空,然后开始读取B,直到有记录到达A。

我正在寻找一份宽松的合同。我发现,InputSelectable接口似乎提供了提供读取优先级的概念。

基于这个答案,我看到了流读取的循环实现。但是,从文档中我不确定如果其中一个流变空会发生什么情况?,操作员是否完全停止处理记录?

实现这一点的一种简单方法是在切换到较低优先级的流之前使用Timers轮询和检测Stream的不活动,但这可能效率太低。

Qs:

  1. 是否有内置的流操作符来实现上述用例
  2. 如果一个输入变为空,InputSelective的行为是什么
  3. 基于定时器的输入可选择实现是一种可行的方法吗

共有1个答案

姜宏放
2023-03-14

答案:

  1. 不。
  2. 我不认为行为是指定/保证的。
  3. 应该是可行的,但你需要小心。

您可能会因输入可选而陷入麻烦。如果您完全耗尽其中一个输入,将阻止检查点屏障对齐完成,从而阻止检查点。也可以构建死锁的拓扑。

您可能需要考虑网络缓冲区超时与计时器的交互作用。我想您可能希望将流A的网络缓冲区超时设置为小于计时器使用的超时。

 类似资料:
  • 问题内容: 我正在尝试查找一个表中的行,而不是另一个表中的行,这两个表都在不同的数据库中,并且在我要用来匹配的列上也有不同的列名。 我有一个查询,下面的代码,我认为它可能有效,但是速度太慢: 因此查询尝试执行以下操作: 从R2R.partmaster数据库中选择wpsapi4.product_details数据库中没有的所有ID。我匹配的列是partmaster.id和product_detail

  • 问题内容: 我有2个表,一个包含我需要的最终结果,另一个包含我需要根据设定级别选择的列列表。 例如 : 所以,如果我做以下 然后,基本上我需要使用此select语句中的列名来确定从另一条语句中选择了哪些列。 香港专业教育学院尝试过的方法,我当然知道这是错的,但可以让我对我试图做的事情有所了解。 我试图以一种动态方式构建一个sql查询,该查询可以通过我放在表中的任何列进行更改。 从理论上讲,这应与以

  • 问题内容: 我有能够反映不同的状态,由用户(触发元件,等)或由所述服务器(操作,等等)。 我可以定位状态已更改的元素,但似乎找不到基于所讨论元素的状态定位DOM中其他元素的方法。 例: 或者只是在服务器端使用适当的样式呈现元素。 是否有CSS选择器可让我指定应根据目标元素的状态选择哪些元素? 就像是: 那将允许我也将 目标 与CSS 没有相同父元素的元素定位 ? 问题答案: 规范问题的一般答案 如

  • 下面有一个表,我希望根据列值的优先级从该表返回记录。

  • 问题内容: 首先,这个问题的标题太可怕了,但是我没有找到更好的方式来描述我的问题。 可能有一种非常简单的方法来执行此操作,但我无法弄清楚。这与这个问题非常相似,但是我在sqlite3(iOS)上运行,因此我怀疑我的选择受到更多限制。 我有一张带有产品记录的表格。所有记录都有一个ID(请注意:我不是在说行ID,而是每个产品唯一的标识号)。某些产品在表中可能有两个条目(两者都具有相同的ID)。唯一的区

  • 我有两个表和 names表有以下列表: -男性姓名从nameID 1到nameID 10 -女性姓名从nameID 11到nameID 21 -两者都从nameID 23到nameID 31 性别表有三个属性: -女性 -男性 -两者 我正在使用引导选择选项,我想显示从nameID11到nameid21的名称,如果用户从gender选择选项中选择女性,等等,这是可能的吗?我看到其他帖子,我注意到他