在我的项目中,我正在读取一个巨大的tsv文件(大约820k)并将记录处理到db。我有一个验证的java文件,验证后我将记录存储在列表中。由于我无法将整个列表发送到vm,因此我将列表拆分为2000并发送到流程。这是我发送2000条记录的方式
{
xtype : 'label',
itemId: 'recordNumberShowItem',
style: 'color: #707070; font-family: VegurMedium,sans-serif; font-size: 12px;',
// text: Ext.String.format(me.displayRecordNumberMsg, 0, 0, 0, me.recordName),
scope: me,
listeners : {
show : function ( label , eOpts ){
// width: (window.outerWidth < 1350) ? 70 : 140,
if(window.outerWidth < 1350){
label.setWidth(70);
}
else{
label.setWidth(null);
}
}
}
}
我有一个流程,它引用了批处理并将记录处理到db。 这是流程
while(i < validRecords.size()){
int j = i + 2000;
if( j < validRecords.size())
{
muleClient.dispatch("vm://validRecordsEtoc", validRecords.subList(i, j), msgProperties);
}
else
{
muleClient.dispatch("vm://endRecordsEtoc", validRecords.subList(i,validRecords.size()-1), msgProperties);
}
i = i + 2000;
}
当我处理最后一个列表时,我发送到另一个流,因为我需要在完成时调用子流,其中我的最后一个vm在前一个列表执行之前被执行。
我按照以下链接
How to read huge CSV file in Mule
任何人都可以告诉我如何做到这一点吗?。