Exemplo n.º 1
0
        public Task Execute(IJobExecutionContext context)
        {
            return(Task.Run(() =>
            {
                try
                {
                    foreach (List <Message> item in RDS.data.Values)
                    {
                        if (item == null || item.Count == 0)
                        {
                            return;
                        }
                        foreach (var msg in item)
                        {
                            if (Tasks >= Config.MaxTasks)
                            {
                                Thread.Sleep(100);
                            }

                            Tasks++;
                            var now = LinuxTime.Seconds(DateTime.Now);
                            if ((now - msg.utc_time) > 60)
                            {
                                msg.status = Message.service_status.offLine.ToString();
                                if (LogHelper.enable)
                                {
                                    Console.WriteLine("Loop-----------------------" + DateTime.Now);
                                }
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message.ToString());
                }
                finally { Tasks = 0; }
            }));
        }
Exemplo n.º 2
0
        internal static void closeConn(Message service)
        {
            if (!data.ContainsKey(service.name))
            {
                data[service.name] = new List <Message>();
            }
            List <Message> services = data[service.name];

            lock (services)
            {
                if (services != null)
                {
                    foreach (var item in services)
                    {
                        if (item.id == service.id && item.name == service.name)
                        {
                            //服务状态重置为false
                            item.status   = Util.To <string>(Message.service_status.offLine);
                            item.utc_time = LinuxTime.Seconds(DateTime.Now);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        internal static void heartBeatPackage(Message service)
        {
            if (!data.ContainsKey(service.name))
            {
                data[service.name] = new List <Message>();
            }
            List <Message> services = data[service.name];

            lock (services)
            {
                if (services != null)
                {
                    List <Message> result = new List <Message>();
                    foreach (var item in services)
                    {
                        if (item.id == service.id && item.name == service.name)
                        {
                            item.utc_time = LinuxTime.Seconds(DateTime.Now);
                            item.status   = Util.To <string>(Message.service_status.alive);
                        }
                    }
                }
            }
        }