use of org.flyte.localengine.examples.RetryableWorkflow in project flytekit-java by flyteorg.
the class LocalEngineTest method testRetryableTask_failed.
@Test
public void testRetryableTask_failed() {
String workflowName = new RetryableWorkflow().getName();
Map<String, WorkflowTemplate> workflows = loadWorkflows();
Map<String, RunnableTask> tasks = loadTasks();
WorkflowTemplate workflow = workflows.get(workflowName);
TestingListener listener = new TestingListener();
// make sure we don't run two tests in parallel
synchronized (RetryableTask.class) {
// will never succeed within retry limit
RetryableTask.ATTEMPTS_BEFORE_SUCCESS.set(10);
RetryableTask.ATTEMPTS.set(0L);
RuntimeException e = Assertions.assertThrows(RuntimeException.class, () -> LocalEngine.compileAndExecute(workflow, tasks, emptyMap(), ImmutableMap.of(), listener));
assertEquals("oops", e.getMessage());
assertEquals(ImmutableList.<List<Object>>builder().add(ofPending("node-1")).add(ofStarting("node-1", ImmutableMap.of())).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
1)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
2)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
3)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
4)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
5)).add(ofError("node-1", ImmutableMap.of(), "oops")).build(), listener.actions);
// getRetries() returns 5, so we have 6 attempts/executions total
assertEquals(6L, RetryableTask.ATTEMPTS.get());
}
}
use of org.flyte.localengine.examples.RetryableWorkflow in project flytekit-java by flyteorg.
the class LocalEngineTest method testRetryableTask_completed.
@Test
public void testRetryableTask_completed() {
String workflowName = new RetryableWorkflow().getName();
Map<String, WorkflowTemplate> workflows = loadWorkflows();
Map<String, RunnableTask> tasks = loadTasks();
WorkflowTemplate workflow = workflows.get(workflowName);
TestingListener listener = new TestingListener();
// make sure we don't run two tests in parallel
synchronized (RetryableTask.class) {
RetryableTask.ATTEMPTS_BEFORE_SUCCESS.set(5L);
RetryableTask.ATTEMPTS.set(0L);
LocalEngine.compileAndExecute(workflow, tasks, emptyMap(), ImmutableMap.of(), listener);
assertEquals(ImmutableList.<List<Object>>builder().add(ofPending("node-1")).add(ofStarting("node-1", ImmutableMap.of())).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
1)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
2)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
3)).add(ofRetrying("node-1", ImmutableMap.of(), "oops", /* attempt= */
4)).add(ofCompleted("node-1", ImmutableMap.of(), ImmutableMap.of())).build(), listener.actions);
// will finish on attempt number 5 according to ATTEMPTS_BEFORE_SUCCESS
assertEquals(5L, RetryableTask.ATTEMPTS.get());
}
}
Aggregations