@Override
    public void timeout(BaseRow input, ResultFuture<BaseRow> resultFuture) throws Exception {

        if (timeOutNum % TIMEOUT_LOG_FLUSH_NUM == 0) {
            LOG.info("Async function call has timed out. input:{}, timeOutNum:{}", input.toString(), timeOutNum);
        }
        timeOutNum++;

        if (timeOutNum > sideInfo.getSideTableInfo().getErrorLimit()) {
            resultFuture.completeExceptionally(
                new SuppressRestartsException(
                    new Throwable(
                        String.format(
                            "Async function call timedOutNum beyond limit. %s",
                            sideInfo.getSideTableInfo().getErrorLimit()
                        )
                    )
                ));
        } else {
            resultFuture.complete(Collections.EMPTY_LIST);
        }
    }
All interfaces inherit naming rules: type + "AsyncReqRow" such as == "MysqlAsyncReqRow
only support Left join / inner join(join),not support right join
Date: 2018/7/9
Company: www.dtstack.com

@author xuchao
core/src/main/java/com/dtstack/flink/sql/side/BaseAsyncReqRow.java