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> T
getSimpleWorkflowResultWithWait(java.lang.Class<T> valueClass, java.lang.String workflowId)
<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 stateUnregisteredClient
getUnregisteredClient()
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)
<O> O
invokeRPC(RpcDefinitions.RpcFunc0<O> rpcStubMethod)
invoking the RPC through RPC stub<I,O>
OinvokeRPC(RpcDefinitions.RpcFunc1<I,O> rpcStubMethod, I input)
invoking the RPC through RPC stubvoid
invokeRPC(RpcDefinitions.RpcProc0 rpcStubMethod)
invoking the RPC through RPC stub<I> void
invokeRPC(RpcDefinitions.RpcProc1<I> rpcStubMethod, I input)
invoking the RPC through RPC stub<T> T
newRpcStub(java.lang.Class<T> workflowClassForRpc, java.lang.String workflowId, java.lang.String workflowRunId)
create a new stub for invoking RPCjava.lang.String
resetWorkflow(java.lang.String workflowId, java.lang.String workflowRunId, ResetWorkflowTypeAndOptions resetWorkflowTypeAndOptions)
WorkflowSearchResponse
searchWorkflow(WorkflowSearchRequest request)
This search API support paginationWorkflowSearchResponse
searchWorkflow(java.lang.String query, int pageSize)
This is a simplified API to search without pagination, use the other searchWorkflow API for pagination featurevoid
signalWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String signalChannelName, java.lang.Object signalValue)
void
skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.Class<? extends WorkflowState> stateClass, int stateExecutionNumber, int timerCommandIndex)
void
skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.Class<? extends WorkflowState> stateClass, int stateExecutionNumber, java.lang.String timerCommandId)
void
skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String workflowStateId, int stateExecutionNumber, int timerCommandIndex)
void
skipTimer(java.lang.String workflowId, java.lang.String workflowRunId, java.lang.String workflowStateId, int stateExecutionNumber, java.lang.String timerCommandId)
java.lang.String
startWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds)
startWorkflow starts a workflow executionjava.lang.String
startWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input)
startWorkflow starts a workflow executionjava.lang.String
startWorkflow(ObjectWorkflow workflow, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input, WorkflowOptions options)
startWorkflow starts a workflow executionjava.lang.String
startWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds)
startWorkflow starts a workflow executionjava.lang.String
startWorkflow(java.lang.Class<? extends ObjectWorkflow> workflowClass, java.lang.String workflowId, int workflowTimeoutSeconds, java.lang.Object input)
startWorkflow starts a workflow executionjava.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 executionvoid
stopWorkflow(java.lang.String workflowId, java.lang.String workflowRunId)
Stop a workflow, this is essentially terminate the workflow gracefullyvoid
stopWorkflow(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 useUnregisteredClient
instead- 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
-
newRpcStub
public <T> T newRpcStub(java.lang.Class<T> workflowClassForRpc, java.lang.String workflowId, java.lang.String workflowRunId)
create a new stub for invoking RPC- Type Parameters:
T
- the class of defining the RPCs to invoke- Parameters:
workflowClassForRpc
- the class of defining the RPCs to invokeworkflowId
- workflowId is requiredworkflowRunId
- optional- Returns:
- the result of the RPC
-
invokeRPC
public <I,O> O invokeRPC(RpcDefinitions.RpcFunc1<I,O> rpcStubMethod, I input)
invoking the RPC through RPC stub- Type Parameters:
I
- the input typeO
- the output type- Parameters:
rpcStubMethod
- the RPC method from stub created bynewRpcStub(Class, String, String)
input
- the input of the RPC method- Returns:
- output
-
invokeRPC
public <O> O invokeRPC(RpcDefinitions.RpcFunc0<O> rpcStubMethod)
invoking the RPC through RPC stub- Type Parameters:
O
- the output type- Parameters:
rpcStubMethod
- the RPC method from stub created bynewRpcStub(Class, String, String)
- Returns:
- output
-
invokeRPC
public <I> void invokeRPC(RpcDefinitions.RpcProc1<I> rpcStubMethod, I input)
invoking the RPC through RPC stub- Type Parameters:
I
- the input type- Parameters:
rpcStubMethod
- the RPC method from stub created bynewRpcStub(Class, String, String)
input
- the input of the RPC method
-
invokeRPC
public void invokeRPC(RpcDefinitions.RpcProc0 rpcStubMethod)
invoking the RPC through RPC stub- Parameters:
rpcStubMethod
- the RPC method from stub created bynewRpcStub(Class, String, String)
-
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)
-
-