I want my parent workflow to call a long running child workflow asynchronously.
I want to keep it untype (for future flexibility). so here is what I am doing as per docs
val childUntyped = Workflow.newUntypedChildWorkflowStub( workflowType, ChildWorkflowOptions.newBuilder() .setWorkflowId(workflowId) .setTaskQueue(taskQueue) .setParentClosePolicy(ParentClosePolicy.PARENT_CLOSE_POLICY_ABANDON) .build() ) val childExecution = childUntyped.executeAsync( Unit.javaClass, definition ) // Important:This is to ensure that a Child Workflow Execution starts before the parent closes. // If the parent initiates a Child Workflow Execution and then completes immediately after, // the Child Workflow will never execute. Refer: https://docs.temporal.io/application-development/features?lang=java#parent-close-policy childExecution.get() log.info("Successfully Scheduled Child workflow")
both workflows are kicked off.
child workflow has a timer and is still running.
I expected the parent workflow to complete after the child workflow has started. but I see it is still waiting for the promise -
I am not sure why the promise is not returned after child has started?