예제 #1
0
        public void changeStatus(String url, Constant.ParseStatus status)
        {
            RuntimeEntity runtime = runtimeService.get(url);

            if (!Constant.RunStatus.STOP.Equals(runtime.RunStatus))
            {
                if (status.Equals(Constant.ParseStatus.START))
                {
                    Object parse = runtime.WaitQueue[url];
                    runtime.StartQueue.Add(url, parse);
                    runtime.WaitQueue.Remove(url);
                }
                else if (status.Equals(Constant.ParseStatus.SUCCESS))
                {
                    Object parse = runtime.StartQueue[url];
                    runtime.SuccessQueue.Add(url, parse);
                    runtime.StartQueue.Remove(url);
                }
                else if (status.Equals(Constant.ParseStatus.EXCEPTION))
                {
                    Object parse = runtime.StartQueue[url];
                    runtime.ErrorQueue.Add(url, parse);
                    runtime.StartQueue.Remove(url);
                }

                //等待队列与执行队列为空的话,整个站点停止解析
                if (runtime.WaitQueue.Count == 0 && runtime.StartQueue.Count == 0)
                {
                    runtime.stop(true);
                }
            }
        }