Пример #1
0
        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);
        }
Пример #2
0
        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();
        }