[Fix]解决最终metric中读写记录数不一致问题,原因WRITE_RECEIVED_RECORDS把TerminateRecord标识记录统计在内

This commit is contained in:
ggzone 2019-09-30 09:57:21 +08:00
parent 57c8dd8673
commit b8506be693

View File

@ -141,15 +141,25 @@ public abstract class Channel {
public Record pull() {
Record record = this.doPull();
if (!(record instanceof TerminateRecord)) {
this.statPull(1L, record.getByteSize());
}
return record;
}
public void pullAll(final Collection<Record> rs) {
Validate.notNull(rs);
this.doPullAll(rs);
if (rs.size() > 0) {
Record record = (Record) rs.toArray()[rs.size() - 1];
//TerminateRecord的bytesize=0无需特殊处理
if (record instanceof TerminateRecord) {
this.statPull(rs.size() - 1, this.getByteSize(rs));
} else{
this.statPull(rs.size(), this.getByteSize(rs));
}
}
}
protected abstract void doPush(Record r);