我想我在这里描述的东西可能有一个名字,但我不知道。所以我的第一个问题是知道这种技术的名称。
这是一个示例:假设您正在网页上实现实时搜索。每次用户在搜索框中键入内容时,您都会触发一个新的搜索查询,并且结果会尽可能频繁地更新。这是一件愚蠢的事情,因为您将发送比您实际需要的更多的查询。每 2-3 个字母发送一次请求或最多每 100 毫秒发送一次请求可能就足够了。
因此,一种技术是安排在键入键后立即执行查询,如果仍有计划但未执行的查询,请取消它们,因为它们现在已经过时了。
现在更具体地说,是否有特定的模式或库可以在 Java 中解决这个问题?
我必须在一个 Swing 应用程序中解决这个问题,我使用了一个 ExecutorService,它返回了可以取消的 ScheduledFutures。问题是我必须为我想要“缓冲”的每个方法调用手动创建一个 Runnable,并跟踪每个 Future 以取消它。
我确定我不是第一个实现这样的东西的人,所以一定有一个可重用的解决方案吗?可能在 Spring 中带有注释和代理?