コード例 #1
0
        internal void OnGlobalThreadStateChange(GlobalStreamThread thread, IThreadStateTransitionValidator old, IThreadStateTransitionValidator @new)
        {
            lock (threadStatesLock)
            {
                if (thread != null)
                {
                    GlobalThreadState newState = (GlobalThreadState)@new;
                    globalThreadState = newState;

                    if (newState == GlobalThreadState.RUNNING)
                    {
                        MaybeSetRunning();
                    }
                    else if (newState == GlobalThreadState.DEAD && stream.SetState(KafkaStream.State.ERROR))
                    {
                        log.Error("Global thread has died. The instance will be in error state and should be closed.");
                    }
                }
            }
        }
コード例 #2
0
        internal void OnChange(IThread thread, IThreadStateTransitionValidator old, IThreadStateTransitionValidator @new)
        {
            lock (threadStatesLock)
            {
                if (thread is StreamThread)
                {
                    ThreadState newState = (ThreadState)@new;
                    threadState.AddOrUpdate(thread.Id, newState);

                    if (newState == ThreadState.PARTITIONS_REVOKED || newState == ThreadState.PARTITIONS_ASSIGNED)
                    {
                        stream.SetState(KafkaStream.State.REBALANCING);
                    }
                    else if (newState == ThreadState.RUNNING)
                    {
                        MaybeSetRunning();
                    }
                    else if (newState == ThreadState.DEAD)
                    {
                        MaybeSetError();
                    }
                }
            }
        }
コード例 #3
0
 public bool IsValidTransition(IThreadStateTransitionValidator newState)
 {
     return(Transitions.Contains(((GlobalThreadState)newState).Ordinal));
 }