private void checkAndCalcDataLimit(long currTime) {
        if (currTime > nextLimitUpdateTime) {
            this.recvMsgSize = 0;
            this.recvMsgInMin = 0;
            if (this.lastDataRdDlt < 0) {
                this.curFlowCtrlVal = new FlowCtrlResult(Integer.MAX_VALUE, 20);
            } else {
                this.curFlowCtrlVal =
                        groupFlowCtrlRuleHandler.getCurDataLimit(this.lastDataRdDlt);
                this.filterCtrlItem = groupFlowCtrlRuleHandler.getFilterCtrlItem();
                if (this.curFlowCtrlVal == null) {
                    this.curFlowCtrlVal =
                            defFlowCtrlRuleHandler.getCurDataLimit(this.lastDataRdDlt);
                    if (this.curFlowCtrlVal == null) {
                        this.curFlowCtrlVal = new FlowCtrlResult(Long.MAX_VALUE, 0);
                    }
                }
                if (this.filterCtrlItem.getFreqLtInMs() < 0) {
                    this.filterCtrlItem = defFlowCtrlRuleHandler.getFilterCtrlItem();
                }
                currTime = System.currentTimeMillis();
            }
            this.limitMsgInSec = this.curFlowCtrlVal.dataLtInSize / 12;
            this.nextLimitUpdateTime = currTime + TBaseConstants.CFG_FC_MAX_LIMITING_DURATION;
            this.nextStatTime = currTime + TBaseConstants.CFG_FC_MAX_SAMPLING_PERIOD;
        } else if (currTime > nextStatTime) {
            this.recvMsgSize = 0;
            this.nextStatTime = currTime + TBaseConstants.CFG_FC_MAX_SAMPLING_PERIOD;
        }
    }
Check and update current control flow threshold.

@param currTime current time
inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/PartitionExt.java