コード例 #1
0
        public virtual void Handle(MigratingInstanceParseContext parseContext,
                                   MigratingTransitionInstance transitionInstance, IList <JobEntity> elements)
        {
            foreach (var job in elements)
            {
                if (!IsAsyncContinuation(job))
                {
                    continue;
                }

                var targetScope = transitionInstance.TargetScope;
                if (targetScope != null)
                {
                    var targetJobDefinitionEntity =
                        parseContext.GetTargetJobDefinition(transitionInstance.TargetScope.Id, job.JobHandlerType);

                    var migratingJobInstance = new MigratingAsyncJobInstance(job, targetJobDefinitionEntity,
                                                                             transitionInstance.TargetScope);

                    transitionInstance.DependentJobInstance = migratingJobInstance;
                    parseContext.Submit(migratingJobInstance);
                }

                parseContext.Consume(job);
            }
        }