This repository has been archived by the owner on Dec 13, 2023. It is now read-only.
Set unack/postpone duration based on task state #3289
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request type
./gradlew generateLock saveLock
to refresh dependencies)NOTE: Please remember to run
./gradlew spotlessApply
to fix any format violations.Changes in this PR
Set unack/postpone duration based on task state.
Describe the new behavior from this PR, and why it's needed
For workflows with a task in IN_PROGRESS state, the postpone duration is set as (responseTimeoutSeconds + 1). Multiple tasks in IN_PROGRESS state, use the first task. If responseTimeoutSeconds is 0, use a default non-zero value as postpone duration.
For workflows with a task in SCHEDULED state, the postpone duration is set as (pollTimeoutSeconds + 1). If pollTimeoutSeconds is not set, the workflowDef.timeoutSeconds is used for postponeDuration. If the workflowDef.timeoutSeconds is not set, a default non-zero value is used the postpone duration. Multiple tasks in SCHEDULED state, use the first task's value. For deducing the default value, the queue_wait_time metric can be used.
For workflows with a WAIT task in IN_PROGRESS state, the postpone duration is set as the wait timeout seconds computed on the task. If wait timeout is not set, this task is waiting for an external trigger to complete the task. In such cases, the postpone duration will be a default non-zero value.
Alternatives considered
Describe alternative implementation you have considered