我有一个未键入的FilterFunction
,它保留了一组应该过滤的项目。我需要从外部 HTTP API 定期更新此集。当项目进入时,我们会检查它们是否在列表中,如果没有,我们会过滤掉它们。
几个具体问题:
- 是否有在
FilterFunction
中设置轮询器的最佳实践,例如使用ScheduledThreadPoolExecutor
? - 如何确保任何时候只有一个轮询器,希望不将过滤器的并行度设置为 1?
- 我应该将返回的项目存储在托管
ListState
状态还是原始状态?
这里有一个建议,应该有助于解决你问过的一些问题:
创建执行轮询的自定义源,并行度为 1。它可以将找到的内容广播到执行过滤的一组 BroadcastProcessFunctions。将允许的项目集保留在 MapState 中,这将使筛选器查找高效。