I'm trying to configure one of my SWF activities using the Flow framework for java and I can't find any documentation about whether the StartToClose timeout is only for a single activity attempt or for all of the retry attempts for that activity.
Here is the configuration for my activity:
@Activity(name = "WaitForExternalTaskToFinish", version = "1.0")
@ActivityRegistrationOptions(
defaultTaskScheduleToStartTimeoutSeconds = 60,
defaultTaskStartToCloseTimeoutSeconds = 60)
@ExponentialRetry(
initialRetryIntervalSeconds = 60,
maximumRetryIntervalSeconds = 300,
retryExpirationSeconds = 7200,
exceptionsToRetry = IllegalStateException.class)
boolean waitForExternalTaskToFinish(long externalTaskId);
I'm trying to get this activity that is expected to take a very short execution time (eg. 5 sec) but if the activity fails then keep retrying the activity to for 2 hours.
StartToClose timeout is for a single activity attempt. Exponential retry is not natively supported by SWF backend and is currently implemented as a decider logic. If you are curious here is the ExponentialRetry AspectJ aspect implementation.
Answering your questions: