Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何有效地跟踪数据库中未处理的记录?_Java_Database_Spring_Hibernate_Bigdata - Fatal编程技术网

Java 如何有效地跟踪数据库中未处理的记录?

Java 如何有效地跟踪数据库中未处理的记录?,java,database,spring,hibernate,bigdata,Java,Database,Spring,Hibernate,Bigdata,我在数据库中有一个表,该表不断填充新记录,这些记录只需发送到Elasticsearch即可 每15分钟,该表将累积约15000条记录。我的任务是创建一个@Scheduled作业,每15分钟收集一次未处理的记录并将其发布到Elasticsearch 我的问题是什么是最有效的方法?如何有效地跟踪未处理的记录 我的建议是使用此表中已有的列INSERTED\u DATE,每次将上次处理的INSERTED\u DATE保留在辅助表中。然而,可能同时插入两个或多个记录,但只处理其中一个?当然,肯定还有其他的

我在数据库中有一个表,该表不断填充新记录,这些记录只需发送到Elasticsearch即可

每15分钟,该表将累积约15000条记录。我的任务是创建一个
@Scheduled
作业,每15分钟收集一次未处理的记录并将其发布到Elasticsearch

我的问题是什么是最有效的方法?如何有效地跟踪未处理的记录

我的建议是使用此表中已有的列
INSERTED\u DATE
,每次将上次处理的
INSERTED\u DATE
保留在辅助表中。然而,可能同时插入两个或多个记录,但只处理其中一个?当然,肯定还有其他的角落案例抛弃了我的方法


你能分享一下你的想法吗?对我来说,这似乎是数据密集型应用程序的典型问题,但这是我在现实生活中第一次面对它。

如果插入的日期<当前日期-5秒,则可以处理数据。这样,在选择数据的同时插入的数据就不会有问题,因为数据复制是可能的。Elasticsearch将阻止它,但如果工作流中引入任何其他内容,数据将不再一致。什么会不一致?想象一下,除了Elasticsearch,我还将记录发送到一个无法防止数据重复的系统。这将导致Elasticsearch和该系统中不同数量的记录。我不明白你的意思。您所说的“可能同时插入两个或多个记录,但仅处理其中一个记录”是什么意思?问题是什么?