Click here to Skip to main content
13,901,218 members
Rate this:
Please Sign up or sign in to vote.
See more:
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 orchestration.

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...
Updated 12-Jan-19 2:12am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

OK - I should be using sub orchestrations instead of inventing my own solution. Dicumented here...

Sub-orchestrations for Durable Functions - Azure | Microsoft Docs[^]

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Cookies | Terms of Service
Web05 | 2.8.190306.1 | Last Updated 12 Jan 2019
Copyright © CodeProject, 1999-2019
All Rights Reserved.
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100