Package io.iworkflow.core
Class Client
- java.lang.Object
-
- io.iworkflow.core.Client
-
public class Client extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description Client(Registry registry, ClientOptions clientOptions)return a full featured client.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<java.lang.String,java.lang.Object>getAllDataObjects(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId)java.util.Map<java.lang.String,java.lang.Object>getAllSearchAttributes(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId)java.util.List<StateCompletionOutput>getComplexWorkflowResultWithWait(java.lang.String workflowId)java.util.List<StateCompletionOutput>getComplexWorkflowResultWithWait(java.lang.String workflowId, java.lang.String workflowRunId)In some cases, a workflow may have more than one completion states<T> TgetSimpleWorkflowResultWithWait(java.lang.Class<T> valueClass, java.lang.String workflowId)<T> TgetSimpleWorkflowResultWithWait(java.lang.Class<T> valueClass, java.lang.String workflowId, java.lang.String workflowRunId)For most cases, a workflow only has one result(one completion state) Use this API to retrieve the output of the stateUnregisteredClientgetUnregisteredClient()java.util.Map<java.lang.String,java.lang.Object>getWorkflowDataObjects(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.util.List<java.lang.String> keys)java.util.Map<java.lang.String,java.lang.Object>getWorkflowSearchAttributes(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.util.List<java.lang.String> attributeKeys)java.lang.StringresetWorkflow(java.lang.String workflowId, java.lang.String workflowRunId, ResetWorkflowTypeAndOptions resetWorkflowTypeAndOptions)WorkflowSearchResponsesearchWorkflow(WorkflowSearchRequest request)This search API support paginationWorkflowSearchResponsesearchWorkflow(java.lang.String query, int pageSize)This is a simplified API to search without pagination, use the other searchWorkflow API for pagination featurevoidsignalWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String signalChannelName, java.lang.Object signalValue)voidskipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.Class<? extends WorkflowState> stateClass, int stateExecutionNumber, int timerCommandIndex)voidskipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.Class<? extends WorkflowState> stateClass, int stateExecutionNumber, java.lang.String timerCommandId)voidskipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String workflowStateId, int stateExecutionNumber, int timerCommandIndex)voidskipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String workflowStateId, int stateExecutionNumber, java.lang.String timerCommandId)java.lang.StringstartWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds)startWorkflow starts a workflow executionjava.lang.StringstartWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input)startWorkflow starts a workflow executionjava.lang.StringstartWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input, WorkflowOptions options)startWorkflow starts a workflow executionjava.lang.StringstartWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds)startWorkflow starts a workflow executionjava.lang.StringstartWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input)startWorkflow starts a workflow executionjava.lang.StringstartWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input, WorkflowOptions option)startWorkflow starts a workflow executionvoidstopWorkflow(java.lang.String workflowId, java.lang.String workflowRunId)Stop a workflow, this is essentially terminate the workflow gracefullyvoidstopWorkflow(java.lang.String workflowId, java.lang.String workflowRunId, StopWorkflowOptions options)Stop a workflow with options
-
-
-
Constructor Detail
-
Client
public Client(Registry registry, ClientOptions clientOptions)
return a full featured client. If you don't have the workflow Registry, you should useUnregisteredClientinstead- Parameters:
registry- registry is required so that this client can perform some validation checks (workflow types, channel names)clientOptions- is for configuring the client
-
-
Method Detail
-
getUnregisteredClient
public UnregisteredClient getUnregisteredClient()
-
startWorkflow
public java.lang.String startWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds)
startWorkflow starts a workflow execution- Parameters:
workflow- is requiredworkflowId- is requiredworkflowTimeoutSeconds- is required- Returns:
- runId
-
startWorkflow
public java.lang.String startWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input)
startWorkflow starts a workflow execution- Parameters:
workflow- is requiredworkflowId- is requiredworkflowTimeoutSeconds- is requiredinput- is optional, can be null- Returns:
- runId
-
startWorkflow
public java.lang.String startWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input, WorkflowOptions options)
startWorkflow starts a workflow execution- Parameters:
workflow- is requiredworkflowId- is requiredworkflowTimeoutSeconds- is requiredinput- is optional, can be nulloptions- is optional, can be null- Returns:
- runId
-
startWorkflow
public java.lang.String startWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds)
startWorkflow starts a workflow execution- Parameters:
workflowClass- is requiredworkflowId- is requiredworkflowTimeoutSeconds- is required- Returns:
- runId
-
startWorkflow
public java.lang.String startWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input)
startWorkflow starts a workflow execution- Parameters:
workflowClass- is requiredworkflowId- is requiredworkflowTimeoutSeconds- is requiredinput- is optional, can be null- Returns:
- runId
-
startWorkflow
public java.lang.String startWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input, WorkflowOptions option)
startWorkflow starts a workflow execution- Parameters:
workflowClass- is requiredworkflowId- is requiredworkflowTimeoutSeconds- is requiredinput- is optional, can be nulloption- is optional, can be null- Returns:
- runId
-
getSimpleWorkflowResultWithWait
public <T> T getSimpleWorkflowResultWithWait(java.lang.Class<T> valueClass, java.lang.String workflowId, java.lang.String workflowRunId)For most cases, a workflow only has one result(one completion state) Use this API to retrieve the output of the state- Type Parameters:
T- type of the output- Parameters:
valueClass- the type class of the outputworkflowId- the workflowIdworkflowRunId- optional runId, can be empty- Returns:
- the output result
-
getSimpleWorkflowResultWithWait
public <T> T getSimpleWorkflowResultWithWait(java.lang.Class<T> valueClass, java.lang.String workflowId)
-
getComplexWorkflowResultWithWait
public java.util.List<StateCompletionOutput> getComplexWorkflowResultWithWait(java.lang.String workflowId, java.lang.String workflowRunId)
In some cases, a workflow may have more than one completion states- Parameters:
workflowId- workflowIdworkflowRunId- workflowRunId- Returns:
- a list of the state output for completion states. User code will figure how to use ObjectEncoder to decode the output
-
getComplexWorkflowResultWithWait
public java.util.List<StateCompletionOutput> getComplexWorkflowResultWithWait(java.lang.String workflowId)
-
signalWorkflow
public void signalWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String signalChannelName, java.lang.Object signalValue)
-
resetWorkflow
public java.lang.String resetWorkflow(java.lang.String workflowId, java.lang.String workflowRunId, ResetWorkflowTypeAndOptions resetWorkflowTypeAndOptions)- Parameters:
workflowId- workflowIdworkflowRunId- workflowRunIdresetWorkflowTypeAndOptions- the combination parameter for reset- Returns:
- the new runId after reset
-
stopWorkflow
public void stopWorkflow(java.lang.String workflowId, java.lang.String workflowRunId)Stop a workflow, this is essentially terminate the workflow gracefully- Parameters:
workflowId- requiredworkflowRunId- optional, can be empty
-
stopWorkflow
public void stopWorkflow(java.lang.String workflowId, java.lang.String workflowRunId, StopWorkflowOptions options)Stop a workflow with options- Parameters:
workflowId- requiredworkflowRunId- optionaloptions- optional
-
getWorkflowDataObjects
public java.util.Map<java.lang.String,java.lang.Object> getWorkflowDataObjects(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.util.List<java.lang.String> keys)
-
getAllDataObjects
public java.util.Map<java.lang.String,java.lang.Object> getAllDataObjects(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId)
-
searchWorkflow
public WorkflowSearchResponse searchWorkflow(java.lang.String query, int pageSize)
This is a simplified API to search without pagination, use the other searchWorkflow API for pagination feature- Parameters:
query- the query of the search, see Cadence/Temporal search attributes docpageSize- the page size- Returns:
- the results of the search, this will only return one page of the results
-
searchWorkflow
public WorkflowSearchResponse searchWorkflow(WorkflowSearchRequest request)
This search API support pagination- Parameters:
request- the search request- Returns:
- the results of the search
-
getWorkflowSearchAttributes
public java.util.Map<java.lang.String,java.lang.Object> getWorkflowSearchAttributes(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.util.List<java.lang.String> attributeKeys)
-
getAllSearchAttributes
public java.util.Map<java.lang.String,java.lang.Object> getAllSearchAttributes(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId)
-
skipTimer
public void skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.Class<? extends WorkflowState> stateClass, int stateExecutionNumber, java.lang.String timerCommandId)
-
skipTimer
public void skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String workflowStateId, int stateExecutionNumber, java.lang.String timerCommandId)
-
skipTimer
public void skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.Class<? extends WorkflowState> stateClass, int stateExecutionNumber, int timerCommandIndex)
-
skipTimer
public void skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String workflowStateId, int stateExecutionNumber, int timerCommandIndex)
-
-