class WorkerResubmitRateLimiter {

    long getWorkerResubmitTime(final WorkerId workerId, final int stageNum, final long currentTime) {
        String workerKey = generateWorkerIndexStageKey(workerId, stageNum);
        final ResubmitRecord prevResubmitRecord = resubmitRecords.get(workerKey);
        long delay = evalDelay(prevResubmitRecord);
        long resubmitAt = currentTime + delay * 1000;
        final ResubmitRecord currResubmitRecord = new ResubmitRecord(workerKey, resubmitAt, delay);
        resubmitRecords.put(workerKey, currResubmitRecord);
        return resubmitAt;
    }

      WorkerResubmitRateLimiter(String workerResubmitIntervalSecs, long expireResubmitDelaySecs);
      WorkerResubmitRateLimiter();

}