我正在尝试使用Python编写一个自定义Source,以从REST端点并行读取JSON数据。
例如,对于给定的一组ID,我需要从:https://foo.com/api/results/1 https://foo.com/api/results/2 ... https://foo.com/api/results/{maxID}检索数据
我需要的关键特性是监视和速率限制:尽管我需要并行(基于线程/进程或使用异步/协同),但我也需要确保我的工作对API端点保持“礼貌”--有效地避免了非自愿的DDoS。
使用psq,我应该能够实现某种速率限制机制,但是那样的话,我就失去了监视进度的能力&使用数据流业务监控的ETA。
看起来,虽然它们合作得很好,但和Google /Sub(它使用)之间的监视并不统一。
我应该如何构建一个大规模并行的HTTP使用者工作流,它实现了速率限制并且具有基于web的监视?
发布于 2016-09-29 17:26:13
数据流目前没有一个内置的方式来执行全局速率限制,但是您可以使用Source来实现这一点。关键的概念是,源的每个拆分最多由一个线程处理,因此您可以为每个拆分分别实现本地速率限制。
此解决方案根本不使用Pub/Sub,因此您可以完全使用Dataflow监视UI。如果要根据管道中的特定事件设置警报,可以执行类似于这的操作。
https://stackoverflow.com/questions/39698886
复制相似问题