Shreyas arya

Generation

generate functionThu, 09 Feb 2023

When requests to Step Function fail, Workflow Service performs exponential backoff retries to notify Step Function service. Number of retries = 3 The total duration of all attempts doesn't exceed 10 seconds, the processing must not exceed the message visibility timeout.

private void process(String message, String receiptHandle) throws Exception { String messageBody = new String(Base64.decodeBase64(message)); String[] messageArr = messageBody.split(":"); String taskToken = messageArr[0]; String input = messageArr[1]; int numberOfRetries = Integer.parseInt(messageArr[2]); try { stepFunctionHelper.startExecution(taskToken, input); sqsHelper.deleteMessage(receiptHandle); } catch (Exception e) { if (numberOfRetries < 3) { int delay = (int) Math.pow(2, numberOfRetries) * 1000; new Thread(() -> { try { Thread.sleep(delay); queueMessage(messageBody, numberOfRetries + 1); } catch (Exception e1) { } }).start(); sqsHelper.deleteMessage(receiptHandle); } else { throw e; }

Questions about programming?Chat with your personal AI assistant