I have one orchestration running (DurableOrchestrationContext
) and I want it to queue up some work for another orchestration and then go to sleep until that is done.
I can make the first one go to sleep with context.WaitForExternalEvent() but it seems that the call to wake an orchestration can only be called from a DurableOrchestrationClient, not an OrchestrationContext.
Am I doing the wrong this altogether or...?
For background - the called orchestration just knows how to deal with projections to be run over a group of entities' event streams in a generic fashion. The caller wants this to happen for a specific projection and a specific set of entities... and to be woken up again for the next step when that is done.
What I have tried:
In the calling orchestration I wait for the called one with :
Task<int> projectionsCompleted = context.WaitForExternalEvent <int>("ProjectionsRun");
..after the projection request has been put on a queue that triggers the second processor
The processor runs all the projections, but how does it reply to the caller that all is done?
(I don't want to use the await
because the caller must sleep for as long as it takes and not time out)
The nearest example I have found is this thread