Ejemplo n.º 1
0
        public void Run()
        {
            int iTestNoCmdTickCount = 0;

            while (_run)
            {
                try
                {
                    Thread.Sleep(100);
                    RemoveHendResultInMemcached();

                    string strIds = PiPublic.MemcachedMgr.GetVal("NewCmdIds");

                    PiPublic.MemcachedMgr.SetVal("NewCmdIds", "");
                    if (strIds.Length == 0)
                    {
                        iTestNoCmdTickCount++;
                        if (iTestNoCmdTickCount > 1000)
                        {
                            iTestNoCmdTickCount = 0;
                            PiPublic.MemcachedMgr.SetVal(GLLedPublic.GlareLedSysDefPub.MemcachedKeyCmdResult, "");
                        }
                        continue;
                    }


                    PiPublic.Log.LogMgr.WriteDebugDefSys("memcached cmd id is" + strIds);

                    iTestNoCmdTickCount = 0;
                    List <CmdLogs> lstCmd = CmdLogsBll.GetNewCmdsByMinutes(3);
                    if (lstCmd.Count == 0)
                    {
                        // 时间过期到命令
                        PiPublic.Log.LogMgr.WriteDebugDefSys("memcached cmd timeouted....");
                        PiPublic.MemcachedMgr.SetVal(GLLedPublic.GlareLedSysDefPub.MemcachedKeyNewCmd, "");
                        continue;
                    }

                    bool   bResult   = false;
                    string strResult = "";
                    foreach (var item in lstCmd)
                    {
                        LogMgr.WriteDebugDefSys("handleing cmd id is" + item.Id + "create dt is" + item.CreateTime);
                        if (item.CreateTime.Value.AddMinutes(1) < DateTime.Now)
                        {
                            RemoveNewCmdInMemcached(item.Id);
                            CmdLogsBll.UpdateACmdResult(item.Id, 99, "timeoutcmd");
                            continue;
                        }

                        if (item.CmdType == GlareLedSysDefPub.CmdDefSetOilValue)
                        {
                            bResult = SetOilValue(item.CommDevId.Value, item.CmdInfo);
                            CmdLogsBll.UpdateACmdResult(item.Id, bResult ? 1 : 99, bResult ? "Success" : "Failed");
                            InsertNewHanedMemcached(item.Id);
                        }
                        else if (item.CmdType == GlareLedSysDefPub.CmdDefSetOilCfg)
                        {
                            bResult = SetOilCfg(item.CommDevId.Value, item.CmdInfo);
                            CmdLogsBll.UpdateACmdResult(item.Id, bResult ? 1 : 99, bResult ? "Success" : "Failed");
                            InsertNewHanedMemcached(item.Id);
                        }
                        else if (item.CmdType == GlareLedSysDefPub.CmdDefGetOilCfg)
                        {
                            bResult = GetOilCfgBySpilits(item.CommDevId.Value, out strResult);
                            CmdLogsBll.UpdateACmdResult(item.Id, bResult ? 1 : 99, strResult);
                            InsertNewHanedMemcached(item.Id);
                        }
                        else if (item.CmdType == GlareLedSysDefPub.CmdDefGetOilValue)
                        {
                            bResult = GetOilValue(item.CommDevId.Value, out strResult);
                            CmdLogsBll.UpdateACmdResult(item.Id, bResult ? 1 : 99, strResult);
                            InsertNewHanedMemcached(item.Id);
                        }
                        else if (item.CmdType == GlareLedSysDefPub.CmdDefSetOilDigiCfg)
                        {
                            bResult = SetOilDigi(item.CommDevId.Value, item.CmdInfo);
                            CmdLogsBll.UpdateACmdResult(item.Id, bResult ? 1 : 99, bResult ? "Success" : "Failed");
                            InsertNewHanedMemcached(item.Id);
                        }
                        else if (item.CmdType == GlareLedSysDefPub.CmdDefGetOilDigiCfg)
                        {
                            bResult = GetOilDigiCfgBySpilits(item.CommDevId.Value, out strResult);
                            CmdLogsBll.UpdateACmdResult(item.Id, bResult ? 1 : 99, strResult);
                            InsertNewHanedMemcached(item.Id);
                        }
                        else
                        {
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogMgr.WriteErrorDefSys("cmd op thread ex:");
                    LogMgr.WriteErrorDefSys(ex.Message);
                }
            }
        }