public IDataflowMessage <TOut> Transform(IDataflowMessage <TIn>[] items) { Interlocked.Increment(ref NumProcessedMessages); IDataflowMessage <TOut> result = m_DecoratedTransformationBatched.Transform(items); if (result.IsBroken) { Interlocked.Increment(ref NumBrokenMessages); } return(result); }
public IDataflowMessage <TOut> Transform(IDataflowMessage <TIn>[] items) { IDataflowMessage <TOut> result = m_DecoratedTransformationBatched.Transform(items); //var s = (Imis.Etl.Crosscutting.Logging.LogDecoratorTransformationBatched<TIn, TOut>)m_DecoratedTransformationBatched; //var nms = s.NumMessagesSeen; //var nms = -1; m_nms = 0; Send(new WorkloadStatisticsContext(this.GroupGuid, this.TaskGuid, m_nms, m_InMsgFunc(), m_OutMsgFunc(), GetBoundedCapacity(), Title)); return(result); }
public IDataflowMessage <TOut> Transform(IDataflowMessage <TIn>[] items) { Interlocked.Increment(ref m_NumMessagesProcessed); long brokenMessageCnt = 0; long totalMessageCnt = items.LongLength; foreach (IDataflowMessage <TIn> item in items) { if (item.IsBroken) { brokenMessageCnt++; m_LogAgent.LogTrace(DataflowNetworkConstituent.TransformationBatched, Title, "Broken message propagates through network. Node: {0}, Message: {1}", Title, item.Title); } else { m_LogAgent.LogTrace(DataflowNetworkConstituent.TransformationBatched, m_DecoratedTransformation.Title, "Transforming: {0}", item.Title); } } m_LogAgent.LogTrace(DataflowNetworkConstituent.TransformationBatched, m_DecoratedTransformation.Title, "Total message count: {0}, broken message count: {1}", totalMessageCnt, brokenMessageCnt); IDataflowMessage <TOut> result = m_DecoratedTransformation.Transform(items); if (result.IsBroken) { Interlocked.Increment(ref m_NumBrokenMsgs); m_LogAgent.LogBrokenMessage(DataflowNetworkConstituent.Transformation, Title, result.Title, (IBrokenDataFlowMessage <TOut>)result); } else { m_LogAgent.LogTrace(DataflowNetworkConstituent.Transformation, m_DecoratedTransformation.Title, "Transformed with Batch-Size: old: {0} new: {1}", items.Length, result.Title); } return(result); }