google-cloud-dataflow - 触发后在条件下将元素发送到下一个窗口
问题描述
到目前为止,我一直在处理 Apache Beam 中给定特定 HTTP 代码的场景,我可能会保留要在下一次迭代中重新启动的元素。
一直在用内部代码实现这个,只使用时间触发器。
.apply(
"Sample Window",
Window.into(FixedWindows.of(Duration.standardMinutes(1)))
.triggering(AfterProcessingTime
.pastFirstElementInPane()
.plusDelayOf(Duration.standardSeconds(1)))
.withAllowedLateness(Duration.ZERO)
.discardingFiredPanes()
)
我正在对我的逻辑进行硬编码以处理 200 个事件的请求。并且还将这些事件存储在内存中,以防请求失败。
但是,检查我看到的文档组合触发......
Repeatedly.forever(AfterFirst.of(
AfterPane.elementCountAtLeast(100),
AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardMinutes(1))))
在我的情况下也是如此。
.apply(
"Sample Window",
Window.<KV<String, String>>into(FixedWindows.of(Duration.standardMinutes(1)))
.triggering(
AfterFirst.of(
AfterPane.elementCountAtLeast(200),
AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardSeconds(1))
)
)
.withAllowedLateness(Duration.ZERO)
.discardingFiredPanes()
)
所以现在想知道...
如果由 1 分钟时间范围内的元素数量触发,这些事件会发生什么情况?它们是否再次被重新处理?我应该手动从窗口中删除它们吗?
我也在谈论 200 个元素失败的情况。我怎样才能让它们在窗口中占上风?
解决方案
推荐阅读
- c# - 如何同时调用Windows服务中的两个方法C#
- c# - IQueryable 可以用于内存中的集合吗?
- react-native - 在 kurento 中传递视频如何反应原生
- php - 流明队列突然中断
- angular - 没有找到与 exportAs 'ngForm' 相关的指令。已尝试所有建议
- python - 如何将时区添加到日期时间对象?
- twitter-bootstrap - 调整屏幕大小时显示引导断点名称
- r - 将使用 golem 制作的闪亮应用程序部署到 shinyapps.io 会出现错误
- python - 如何遍历到当前目录中每个子目录的最后一级?
- view - 在 couchdb 从 1.6.1 迁移到 2.3.1 期间,由于内存问题 couchup 实用程序需要大量时间重建视图