public async Task OnChildStateCategoryChangeAsync(long childJobId, JobStateCategory category) { var beforeCategory = Helper.GetJobStateCategory(State.CurrentJobState); State.ChildrenStatesDic[childJobId] = category; await WriteStateAsync(); var currentState = State.CurrentJobState; var currentCategory = Helper.GetJobStateCategory(State.CurrentJobState); if (State.ParentJobId.HasValue) { var parentGrain = GrainFactory.GetGrain <IJobGrain>(State.ParentJobId.Value); if (currentState == JobState.Running) { await parentGrain.OnChildRunningAsync(State.JobId); } if (beforeCategory != currentCategory) { await parentGrain.OnChildStateCategoryChangeAsync(State.JobId, currentCategory); } } await TryTriggerActionAsync(); await UpdateJobStatisticsAsync(childJobId, currentState); }
public async Task OnChildStateChangeAsync(long childJobId, JobStateCategory state) { State.ChildrenStatesDic[childJobId] = state; if (State.ParentJobId.HasValue) { var parentGrain = GrainFactory.GetGrain <IJobGrain>(State.ParentJobId.Value); var category = Helper.GetJobStateCategory(State.CurrentJobState); await parentGrain.OnChildStateChangeAsync(State.JobId, category); } await WriteStateAsync(); }