Package software.amazon.lambda.durable
Class DurableContext
java.lang.Object
software.amazon.lambda.durable.BaseContext
software.amazon.lambda.durable.DurableContext
- All Implemented Interfaces:
AutoCloseable
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Clears the logger's thread properties.<T> DurableCallbackFuture<T>createCallback(String name, Class<T> resultType) <T> DurableCallbackFuture<T>createCallback(String name, Class<T> resultType, CallbackConfig config) <T> DurableCallbackFuture<T>createCallback(String name, TypeToken<T> typeToken) <T> DurableCallbackFuture<T>createCallback(String name, TypeToken<T> typeToken, CallbackConfig config) createChildContext(String childContextId, String childContextName) Creates a child context.static DurableContextcreateRootContext(ExecutionManager executionManager, DurableConfig durableConfig, com.amazonaws.services.lambda.runtime.Context lambdaContext) Creates a root context (contextId = null)createStepContext(String stepOperationId, String stepOperationName, int attempt) Creates a step context for executing step operations.Returns a logger with execution context information for replay-aware logging.<T,U> T <T,U> T invoke(String name, String functionName, U payload, Class<T> resultType, InvokeConfig config) <T,U> T <T,U> T invoke(String name, String functionName, U payload, TypeToken<T> typeToken, InvokeConfig config) <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, Class<T> resultType) <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, Class<T> resultType, InvokeConfig config) <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, TypeToken<T> resultType) <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, TypeToken<T> typeToken, InvokeConfig config) <T> TrunInChildContext(String name, Class<T> resultType, Function<DurableContext, T> func) <T> TrunInChildContext(String name, TypeToken<T> typeToken, Function<DurableContext, T> func) <T> DurableFuture<T>runInChildContextAsync(String name, Class<T> resultType, Function<DurableContext, T> func) <T> DurableFuture<T>runInChildContextAsync(String name, TypeToken<T> typeToken, Function<DurableContext, T> func) <T> Tstep(String name, Class<T> resultType, Function<StepContext, T> func) <T> Tstep(String name, Class<T> resultType, Function<StepContext, T> func, StepConfig config) <T> TDeprecated.use the variants accepting StepContext instead<T> Tstep(String name, Class<T> resultType, Supplier<T> func, StepConfig config) Deprecated.use the variants accepting StepContext instead<T> Tstep(String name, TypeToken<T> typeToken, Function<StepContext, T> func) <T> Tstep(String name, TypeToken<T> typeToken, Function<StepContext, T> func, StepConfig config) <T> TDeprecated.use the variants accepting StepContext instead<T> Tstep(String name, TypeToken<T> typeToken, Supplier<T> func, StepConfig config) Deprecated.use the variants accepting StepContext instead<T> DurableFuture<T>stepAsync(String name, Class<T> resultType, Function<StepContext, T> func) <T> DurableFuture<T>stepAsync(String name, Class<T> resultType, Function<StepContext, T> func, StepConfig config) <T> DurableFuture<T>Deprecated.use the variants accepting StepContext instead<T> DurableFuture<T>stepAsync(String name, Class<T> resultType, Supplier<T> func, StepConfig config) Deprecated.use the variants accepting StepContext instead<T> DurableFuture<T>stepAsync(String name, TypeToken<T> typeToken, Function<StepContext, T> func) <T> DurableFuture<T>stepAsync(String name, TypeToken<T> typeToken, Function<StepContext, T> func, StepConfig config) <T> DurableFuture<T>Deprecated.use the variants accepting StepContext instead<T> DurableFuture<T>stepAsync(String name, TypeToken<T> typeToken, Supplier<T> func, StepConfig config) Deprecated.use the variants accepting StepContext instead<T> TwaitForCallback(String name, Class<T> resultType, BiConsumer<String, StepContext> func) <T> TwaitForCallback(String name, Class<T> resultType, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) <T> TwaitForCallback(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func) <T> TwaitForCallback(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) <T> DurableFuture<T>waitForCallbackAsync(String name, Class<T> resultType, BiConsumer<String, StepContext> func) <T> DurableFuture<T>waitForCallbackAsync(String name, Class<T> resultType, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) <T> DurableFuture<T>waitForCallbackAsync(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func) <T> DurableFuture<T>waitForCallbackAsync(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) Methods inherited from class software.amazon.lambda.durable.BaseContext
getContextId, getContextName, getDurableConfig, getExecutionContext, getExecutionManager, getLambdaContext
-
Method Details
-
createRootContext
public static DurableContext createRootContext(ExecutionManager executionManager, DurableConfig durableConfig, com.amazonaws.services.lambda.runtime.Context lambdaContext) Creates a root context (contextId = null)The context itself always has a null contextId (making it a root context).
- Parameters:
executionManager- the execution managerdurableConfig- the durable configurationlambdaContext- the Lambda context- Returns:
- a new root DurableContext
-
createChildContext
Creates a child context.- Parameters:
childContextId- the child context's ID (the CONTEXT operation's operation ID)- Returns:
- a new DurableContext for the child context
-
createStepContext
Creates a step context for executing step operations.- Parameters:
stepOperationId- the ID of the step operation (used for thread registration)- Returns:
- a new StepContext instance
-
step
-
step
public <T> T step(String name, Class<T> resultType, Function<StepContext, T> func, StepConfig config) -
step
-
step
public <T> T step(String name, TypeToken<T> typeToken, Function<StepContext, T> func, StepConfig config) -
stepAsync
public <T> DurableFuture<T> stepAsync(String name, Class<T> resultType, Function<StepContext, T> func) -
stepAsync
public <T> DurableFuture<T> stepAsync(String name, Class<T> resultType, Function<StepContext, T> func, StepConfig config) -
stepAsync
public <T> DurableFuture<T> stepAsync(String name, TypeToken<T> typeToken, Function<StepContext, T> func) -
stepAsync
public <T> DurableFuture<T> stepAsync(String name, TypeToken<T> typeToken, Function<StepContext, T> func, StepConfig config) -
step
Deprecated.use the variants accepting StepContext instead -
step
Deprecated.use the variants accepting StepContext instead -
step
Deprecated.use the variants accepting StepContext instead -
step
Deprecated.use the variants accepting StepContext instead -
stepAsync
Deprecated.use the variants accepting StepContext instead -
stepAsync
public <T> DurableFuture<T> stepAsync(String name, Class<T> resultType, Supplier<T> func, StepConfig config) Deprecated.use the variants accepting StepContext instead -
stepAsync
Deprecated.use the variants accepting StepContext instead -
stepAsync
public <T> DurableFuture<T> stepAsync(String name, TypeToken<T> typeToken, Supplier<T> func, StepConfig config) Deprecated.use the variants accepting StepContext instead -
wait
-
waitAsync
-
invoke
-
invoke
public <T,U> T invoke(String name, String functionName, U payload, Class<T> resultType, InvokeConfig config) -
invoke
-
invoke
public <T,U> T invoke(String name, String functionName, U payload, TypeToken<T> typeToken, InvokeConfig config) -
invokeAsync
public <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, Class<T> resultType, InvokeConfig config) -
invokeAsync
public <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, Class<T> resultType) -
invokeAsync
public <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, TypeToken<T> resultType) -
invokeAsync
public <T,U> DurableFuture<T> invokeAsync(String name, String functionName, U payload, TypeToken<T> typeToken, InvokeConfig config) -
createCallback
public <T> DurableCallbackFuture<T> createCallback(String name, Class<T> resultType, CallbackConfig config) -
createCallback
-
createCallback
-
createCallback
public <T> DurableCallbackFuture<T> createCallback(String name, TypeToken<T> typeToken, CallbackConfig config) -
runInChildContext
-
runInChildContext
public <T> T runInChildContext(String name, TypeToken<T> typeToken, Function<DurableContext, T> func) -
runInChildContextAsync
public <T> DurableFuture<T> runInChildContextAsync(String name, Class<T> resultType, Function<DurableContext, T> func) -
runInChildContextAsync
public <T> DurableFuture<T> runInChildContextAsync(String name, TypeToken<T> typeToken, Function<DurableContext, T> func) -
waitForCallback
-
waitForCallback
public <T> T waitForCallback(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func) -
waitForCallback
public <T> T waitForCallback(String name, Class<T> resultType, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) -
waitForCallback
public <T> T waitForCallback(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) -
waitForCallbackAsync
public <T> DurableFuture<T> waitForCallbackAsync(String name, Class<T> resultType, BiConsumer<String, StepContext> func) -
waitForCallbackAsync
public <T> DurableFuture<T> waitForCallbackAsync(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func) -
waitForCallbackAsync
public <T> DurableFuture<T> waitForCallbackAsync(String name, Class<T> resultType, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) -
waitForCallbackAsync
public <T> DurableFuture<T> waitForCallbackAsync(String name, TypeToken<T> typeToken, BiConsumer<String, StepContext> func, WaitForCallbackConfig waitForCallbackConfig) -
getLogger
Returns a logger with execution context information for replay-aware logging.- Specified by:
getLoggerin classBaseContext- Returns:
- the durable logger
-
close
public void close()Clears the logger's thread properties. Called during context destruction to prevent memory leaks and ensure clean state for subsequent executions.- Specified by:
closein interfaceAutoCloseable- Overrides:
closein classBaseContext
-