Data Pipeline Patterns
Retry Plan
A retry plan can be modeled as deterministic data before it drives real scheduling.
Retry Plan
RetryPlan.java
public class RetryPlan {
static String buildPlan(int maxRetries) {
StringBuilder delays = new StringBuilder();
for (int retry = 1; retry <= maxRetries; retry++) {
if (retry > 1) {
delays.append(",");
}
delays.append(retry * 100);
}
return delays.toString();
}
public static void main(String[] args) {
int maxRetries = ;
String delays = buildPlan(maxRetries);
int finalDelay = maxRetries == 0 ? 0 : maxRetries * 100;
System.out.println("delays=" + delays);
System.out.println("final=" + finalDelay);
}
}
public class RetryPlan {
static String buildPlan(int maxRetries) {
StringBuilder delays = new StringBuilder();
for (int retry = 1; retry <= maxRetries; retry++) {
if (retry > 1) {
delays.append(",");
}
delays.append(retry * 100);
}
return delays.toString();
}
public static void main(String[] args) {
int maxRetries = ;
String delays = buildPlan(maxRetries);
int finalDelay = maxRetries == 0 ? 0 : maxRetries * 100;
System.out.println("delays=" + delays);
System.out.println("final=" + finalDelay);
}
}
public class RetryPlan {
static String buildPlan(int maxRetries) {
StringBuilder delays = new StringBuilder();
for (int retry = 1; retry <= maxRetries; retry++) {
if (retry > 1) {
delays.append(",");
}
delays.append(retry * 100);
}
return delays.toString();
}
public static void main(String[] args) {
int maxRetries = ;
String delays = buildPlan(maxRetries);
int finalDelay = maxRetries == 0 ? 0 : maxRetries * 100;
System.out.println("delays=" + delays);
System.out.println("final=" + finalDelay);
}
}
retry data
The example builds retry delays as plain data instead of sleeping or measuring time.
final delay
The final delay summarizes the last retry step for later reporting.