我有一个spring Boot 应用程序,它从不同的设备接收数据,我需要将这些数据作为批处理插入以最大化性能。为此,我考虑过将数据存储在内存中一段时间,然后调用spring data saveAll方法将其作为批处理保存。但我的问题是,数据不是以正常的速度来的,我可能一次得到几千个数据,然后在接下来的几个小时里没有数据。所以我不知道如何正确地构建批处理,因为在固定大小的批处理中,在最后可能会遗漏一些数据。有没有一种方法可以在java/spring中执行定时批处理,在配置的超时后刷新批处理?
我有一个spring Boot 应用程序,它从不同的设备接收数据,我需要将这些数据作为批处理插入以最大化性能。为此,我考虑过将数据存储在内存中一段时间,然后调用spring data saveAll方法将其作为批处理保存。但我的问题是,数据不是以正常的速度来的,我可能一次得到几千个数据,然后在接下来的几个小时里没有数据。所以我不知道如何正确地构建批处理,因为在固定大小的批处理中,在最后可能会遗漏一些数据。有没有一种方法可以在java/spring中执行定时批处理,在配置的超时后刷新批处理?
1条答案
按热度按时间sg24os4d1#
我目前正在使用BlockingQueue和Guauva的Queues来完成这项工作。
在这里,我从生产者线程执行queue.add()