Class ChildWorkflowOptions.Builder
- java.lang.Object
-
- io.temporal.workflow.ChildWorkflowOptions.Builder
-
- Enclosing class:
- ChildWorkflowOptions
public static final class ChildWorkflowOptions.Builder extends java.lang.Object
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ChildWorkflowOptions
build()
ChildWorkflowOptions.Builder
setCancellationType(ChildWorkflowCancellationType cancellationType)
In case of a child workflow cancellation it fails with aCanceledFailure
.ChildWorkflowOptions.Builder
setContextPropagators(java.util.List<ContextPropagator> contextPropagators)
Specifies the list of context propagators to use during this workflow.ChildWorkflowOptions.Builder
setCronSchedule(CronSchedule c)
ChildWorkflowOptions.Builder
setCronSchedule(java.lang.String cronSchedule)
ChildWorkflowOptions.Builder
setMemo(java.util.Map<java.lang.String,java.lang.Object> memo)
Specifies additional non-indexed information in result of list workflow.ChildWorkflowOptions.Builder
setMethodRetry(MethodRetry r)
ChildWorkflowOptions.Builder
setNamespace(java.lang.String namespace)
Specify namespace in which workflow should be started.ChildWorkflowOptions.Builder
setParentClosePolicy(io.temporal.api.enums.v1.ParentClosePolicy parentClosePolicy)
Specifies how this workflow reacts to the death of the parent workflow.ChildWorkflowOptions.Builder
setRetryOptions(RetryOptions retryOptions)
RetryOptions that define how child workflow is retried in case of failure.ChildWorkflowOptions.Builder
setSearchAttributes(java.util.Map<java.lang.String,java.lang.Object> searchAttributes)
Deprecated.ChildWorkflowOptions.Builder
setTaskQueue(java.lang.String taskQueue)
Task queue to use for workflow tasks.ChildWorkflowOptions.Builder
setTypedSearchAttributes(SearchAttributes typedSearchAttributes)
Specifies additional indexed information in result of list workflow.ChildWorkflowOptions.Builder
setVersioningIntent(VersioningIntent versioningIntent)
Specifies whether this child workflow should run on a worker with a compatible Build Id or not.ChildWorkflowOptions.Builder
setWorkflowExecutionTimeout(java.time.Duration workflowExecutionTimeout)
The time after which child workflow execution (which includes run retries and continue as new) is automatically terminated by Temporal service with WORKFLOW_EXECUTION_TIMED_OUT status.ChildWorkflowOptions.Builder
setWorkflowId(java.lang.String workflowId)
Workflow id to use when starting.ChildWorkflowOptions.Builder
setWorkflowIdReusePolicy(io.temporal.api.enums.v1.WorkflowIdReusePolicy workflowIdReusePolicy)
Specifies server behavior if a completed workflow with the same id exists.ChildWorkflowOptions.Builder
setWorkflowRunTimeout(java.time.Duration workflowRunTimeout)
The time after which child workflow run is automatically terminated by Temporal service with CHILD_WORKFLOW_EXECUTION_TIMED_OUT status.ChildWorkflowOptions.Builder
setWorkflowTaskTimeout(java.time.Duration workflowTaskTimeout)
Maximum execution time of a single workflow task.ChildWorkflowOptions
validateAndBuildWithDefaults()
-
-
-
Method Detail
-
setNamespace
public ChildWorkflowOptions.Builder setNamespace(java.lang.String namespace)
Specify namespace in which workflow should be started.TODO: Resolve conflict with WorkflowClient namespace.
-
setWorkflowId
public ChildWorkflowOptions.Builder setWorkflowId(java.lang.String workflowId)
Workflow id to use when starting. If not specified a UUID is generated. Note that it is dangerous as in case of client side retries no deduplication will happen based on the generated id. So prefer assigning business meaningful ids if possible.
-
setWorkflowIdReusePolicy
public ChildWorkflowOptions.Builder setWorkflowIdReusePolicy(io.temporal.api.enums.v1.WorkflowIdReusePolicy workflowIdReusePolicy)
Specifies server behavior if a completed workflow with the same id exists. Note that under no conditions Temporal allows two workflows with the same namespace and workflow id run simultaneously.-
AllowDuplicateFailedOnly is a default value. It means that workflow can start if
previous run failed or was canceled or terminated.
-
AllowDuplicate allows new run independently of the previous run closure status.
-
RejectDuplicate doesn't allow new run independently of the previous run closure status.
-
setWorkflowRunTimeout
public ChildWorkflowOptions.Builder setWorkflowRunTimeout(java.time.Duration workflowRunTimeout)
The time after which child workflow run is automatically terminated by Temporal service with CHILD_WORKFLOW_EXECUTION_TIMED_OUT status.
Parent workflow receivesChildWorkflowFailure
exception withTimeoutFailure
cause from the child'sPromise
if this happens.When a workflow reaches Workflow Run Timeout, it can't make any progress after that. Do not rely on this timeout in workflow implementation or business logic. This timeout is not designed to be handled in workflow code to perform any logic in case of timeout. Consider using workflow timers instead.
If you catch yourself setting this timeout to very small values, you're likely using it wrong.
Example: If Workflow Run Timeout is 30 seconds and the network was unavailable for 1 minute, workflows that were scheduled before the network blip will never have a chance to make progress or react, and will be terminated.
A timer that is scheduled in the workflow code usingWorkflow.newTimer(Duration)
will handle this situation gracefully. A workflow with such a timer will start after the network blip. If it started before the network blip and the timer fires during the network blip, it will get delivered after connectivity is restored and the workflow will be able to resume.
-
setWorkflowExecutionTimeout
public ChildWorkflowOptions.Builder setWorkflowExecutionTimeout(java.time.Duration workflowExecutionTimeout)
The time after which child workflow execution (which includes run retries and continue as new) is automatically terminated by Temporal service with WORKFLOW_EXECUTION_TIMED_OUT status.
Parent workflow receivesChildWorkflowFailure
exception withTimeoutFailure
cause from the child'sPromise
if this happens.When a workflow reaches Workflow Execution Timeout, it can't make any progress after that. Do not rely on this timeout in workflow implementation or business logic. This timeout is not designed to be handled in workflow code to perform any logic in case of timeout. Consider using workflow timers instead.
If you catch yourself setting this timeout to very small values, you're likely using it wrong.
Example: If Workflow Execution Timeout is 30 seconds and the network was unavailable for 1 minute, workflows that were scheduled before the network blip will never have a chance to make progress or react, and will be terminated.
A timer that is scheduled in the workflow code usingWorkflow.newTimer(Duration)
will handle this situation gracefully. A workflow with such a timer will start after the network blip. If it started before the network blip and the timer fires during the network blip, it will get delivered after connectivity is restored and the workflow will be able to resume.
-
setWorkflowTaskTimeout
public ChildWorkflowOptions.Builder setWorkflowTaskTimeout(java.time.Duration workflowTaskTimeout)
Maximum execution time of a single workflow task. Default is 10 seconds. Maximum accepted value is 60 seconds.
-
setTaskQueue
public ChildWorkflowOptions.Builder setTaskQueue(java.lang.String taskQueue)
Task queue to use for workflow tasks. It should match a task queue specified when creating aWorker
that hosts the workflow code.
-
setRetryOptions
public ChildWorkflowOptions.Builder setRetryOptions(RetryOptions retryOptions)
RetryOptions that define how child workflow is retried in case of failure. Default is null which is no reties.
-
setCronSchedule
public ChildWorkflowOptions.Builder setCronSchedule(java.lang.String cronSchedule)
-
setParentClosePolicy
public ChildWorkflowOptions.Builder setParentClosePolicy(io.temporal.api.enums.v1.ParentClosePolicy parentClosePolicy)
Specifies how this workflow reacts to the death of the parent workflow.
-
setMemo
public ChildWorkflowOptions.Builder setMemo(java.util.Map<java.lang.String,java.lang.Object> memo)
Specifies additional non-indexed information in result of list workflow.
-
setSearchAttributes
@Deprecated public ChildWorkflowOptions.Builder setSearchAttributes(java.util.Map<java.lang.String,java.lang.Object> searchAttributes)
Deprecated.Specifies additional indexed information in result of list workflow.
-
setTypedSearchAttributes
public ChildWorkflowOptions.Builder setTypedSearchAttributes(SearchAttributes typedSearchAttributes)
Specifies additional indexed information in result of list workflow.
-
setContextPropagators
public ChildWorkflowOptions.Builder setContextPropagators(java.util.List<ContextPropagator> contextPropagators)
Specifies the list of context propagators to use during this workflow.
-
setCancellationType
public ChildWorkflowOptions.Builder setCancellationType(ChildWorkflowCancellationType cancellationType)
In case of a child workflow cancellation it fails with aCanceledFailure
. The type defines at which point the exception is thrown.
-
setMethodRetry
public ChildWorkflowOptions.Builder setMethodRetry(MethodRetry r)
-
setCronSchedule
public ChildWorkflowOptions.Builder setCronSchedule(CronSchedule c)
-
setVersioningIntent
public ChildWorkflowOptions.Builder setVersioningIntent(VersioningIntent versioningIntent)
Specifies whether this child workflow should run on a worker with a compatible Build Id or not. See the variants ofVersioningIntent
.
-
build
public ChildWorkflowOptions build()
-
validateAndBuildWithDefaults
public ChildWorkflowOptions validateAndBuildWithDefaults()
-
-