我的程序有两个流-一个数据流和另一个丰富流。丰富流被广播并连接到数据流。丰富流偶尔会刷新,但有时对于数据流数据来说是陈旧的。我的要求是在出现这种情况时刷新丰富流。关于如何实现这一点有何建议?
fkaflof61#
对于您的特定用例,假设丰富是基于数据流和丰富流之间的公共键值,并且您可以使用HTTP pull(vs. push)模型,那么我建议如下:1.使用键值对数据流进行分区。1.将这个分区的数据流运行到AsyncIO函数中,首先检查缓存,然后发出HTTP请求以获取适当的充实数据。1.将丰富数据保存在本地缓存中(例如使用Guava),您可以在其中控制该高速缓存大小和TTL。该高速缓存数据将在重启时丢失,但通常这是可以的。注意,该高速缓存将需要是线程安全的,因为HTTP请求的完成将是多线程的。
1条答案
按热度按时间fkaflof61#
对于您的特定用例,假设丰富是基于数据流和丰富流之间的公共键值,并且您可以使用HTTP pull(vs. push)模型,那么我建议如下:
1.使用键值对数据流进行分区。
1.将这个分区的数据流运行到AsyncIO函数中,首先检查缓存,然后发出HTTP请求以获取适当的充实数据。
1.将丰富数据保存在本地缓存中(例如使用Guava),您可以在其中控制该高速缓存大小和TTL。
该高速缓存数据将在重启时丢失,但通常这是可以的。注意,该高速缓存将需要是线程安全的,因为HTTP请求的完成将是多线程的。