除非直到完成批处理,否则如何停止执行流程引用?

时间:2016-12-06 13:32:08

标签: mule anypoint-studio

在我的项目中,我正在读取一个巨大的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

任何人都可以告诉我如何做到这一点吗?。

0 个答案:

没有答案