mysql innodb table 中的 count(*) 在通过 spring xd 抽取数据时导致结果不一致

count(*) in mysql innodb table leading to inconsistent results while data is pumped via spring xd

       echo -e "job create --name $completeJobName --definition \"filejdbc --resources=file:/var/lib/wwhs/eligibility/processing/complete/* 
--names=file_id,client_id,member_record_number,membe    r_first_name,member_middle_initial,member_last_name
,group_id,member_id,date_of_birth,created_by,created_date,modified_by
,modified_date 
--tableName=eligibility.eligibility_file_staging_complete\" --deploy" > $completeJobCmdFile

           /var/lib/spring_xd/shell/bin/xd-shell script $completeJobCmdFile                        # Call XD to create the complete job
             /var/lib/spring_xd/shell/bin/xd-shell job launch $completeJobName                       # Run XD processing for simple input files
             rm $completeJobCmdFile

在上面的代码中,我们通过 spring XD 将数据从 .csv 文件推送到 MySQL table。然后我们从 table 中读取计数 (*)。一旦计数与文件 header 中的计数相匹配,我们将启动下一个 SQL 来处理来自此暂存 table.

的行

我面临的问题是计数(*) 在变化。因此,当我在 if-else 条件下将它与 header 值匹配时,它匹配。

后来,计数就低多了。 table-type 是 InnoDB,这可能是问题所在吗?

请指导我。

虽然我不确定什么会导致 count(*) 查询的结果发生变化,但由于您正在使用作业导入数据,为什么不在作业完成后启动下一个进程完全的?在Spring XD中,可以监听与作业相关的事件,以便您可以执行依赖进程。

您可以在此处阅读有关职位相关通知的更多信息:http://docs.spring.io/spring-xd/docs/1.0.3.RELEASE/reference/html/#_retrieve_job_notifications