/// <summary>
        /// 接收来自指令中心的指令
        /// </summary>
        /// <param name="beatMessage"></param>
        /// <returns></returns>
        public static BeatResult HeartBeat(BeatMessage beatMessage)
        {
            BeatResult result = new BeatResult()
            {
                Result = Model.BeatResultEnum.Failed
            };
            InstructionServiceClient client = null;

            try
            {
                if (beatMessage != null)
                {
                    client = new InstructionServiceClient();
                    result = client.HeartBeat(beatMessage);
                    if (result != null && result.Result == Model.BeatResultEnum.Success)
                    {
                        ExecInstruction(result.TaskList.Where(t => t.TaskExecutor.Equals(beatMessage.HostIP) && t.Status == Model.TaskMessageStatusEnum.None));
                    }
                }
            }
            finally
            {
                if (client != null)
                {
                    client.Close();
                }
            }
            return(result);
        }
Beispiel #2
0
 /// <summary>
 /// 注册服务
 /// </summary>
 /// <param name="beatMessage"></param>
 /// <returns></returns>
 public bool RegisterServer(BeatMessage beatMessage)
 {
     lock (_lockObj)
     {
         if (!string.IsNullOrEmpty(beatMessage.HostIP) && !_servers.Contains(beatMessage.HostIP))
         {
             _servers.Add(beatMessage.HostIP);
         }
         DistributedCache.Set(CacheKeys.InstuctionServerCacheKey, _servers, DateTime.Now.AddYears(1));
     }
     return(true);
 }
Beispiel #3
0
 private static void Heat(object dataBuffer)
 {
     try
     {
         BeatMessage beatMessage = new BeatMessage();
         beatMessage.HostIP = ServerProfile.ServerIP;
         BeatResult result = InstructionServiceBusiness.HeartBeat(beatMessage);
         Process.Debug(ikey, "发送心跳到指令中心", "Heat", "", "发送心跳到指令中心,返回消息:" + JsonConvert.SerializeObject(result), "");
     }
     catch (Exception ex)
     {
         Process.Error(ikey, "发送心跳到指令中心", "Heat", "", "发送心跳到指令中心,发生异常:" + ex.GetString(), "");
     }
     finally
     {
         SystemHeatService.AddDataToBuffer();
     }
 }
Beispiel #4
0
 public static void Register()
 {
     ThreadPool.QueueUserWorkItem(x =>
     {
         try
         {
             BeatMessage beatMessage = new BeatMessage();
             beatMessage.HostIP      = ServerProfile.ServerIP;
             bool result             = InstructionServiceBusiness.RegisterServer(beatMessage);
             SystemHeatService.AddDataToBuffer();
             Process.Info(ikey, "注册系统到指令中心", "Register", "", "注册系统到指令中心,返回消息:" + result, "");
         }
         catch (Exception ex)
         {
             Process.Error(ikey, "注册系统到指令中心", "Register", "", "注册系统到指令中心,发生异常:" + ex.GetString(), "");
         }
     });
 }
Beispiel #5
0
 /// <summary>
 /// 请求并接收指令中心的数据
 /// </summary>
 /// <param name="beatMessage"></param>
 /// <returns></returns>
 public BeatResult HeartBeat(BeatMessage beatMessage)
 {
     lock (_lockObj)
     {
         BeatResult beatResult = new BeatResult();
         beatResult.TaskList = new List <TaskMessage>();
         var tempList = _taskList.Where(t => t.TaskExecutor.Equals(beatMessage.HostIP) && t.Status == TaskMessageStatusEnum.None);
         foreach (var item in tempList)
         {
             var msg = MappingHelper.From <TaskMessage, TaskMessage>(item);
             beatResult.TaskList.Add(msg);
         }
         beatResult.Result = BeatResultEnum.Success;
         _taskList.Where(t => t.TaskExecutor.Equals(beatMessage.HostIP)).ToList()
         .ForEach(t => t.Status = TaskMessageStatusEnum.Executed);
         DistributedCache.Add(CacheKeys.InstuctionTaskListCacheKey, _taskList, DateTime.Now.AddYears(1));
         return(beatResult);
     }
 }
Beispiel #6
0
    private void Beat()
    {
        lastBeatTime = Time.time;
        halfBeatCounter++;

        BeatMessage beatMessage = new BeatMessage();

        beatMessage.Sender        = gameObject;
        beatMessage.HalfBeatCount = HalfBeatCount;

        MessageBus.Instance.SendMessage(beatMessage);

        if (halfBeatCounter >= beatsPerBar * 2)
        {
            ResetBeatCounter();
            BarMessage barMessage = new BarMessage();
            barMessage.Sender = gameObject;
            MessageBus.Instance.SendMessage(barMessage);
        }
    }
        public static bool RegisterServer(BeatMessage beatMessage)
        {
            //注册到指令中心
            InstructionServiceClient client = null;
            bool result = false;

            try
            {
                if (beatMessage != null)
                {
                    client = new InstructionServiceClient();
                    result = client.RegisterServer(beatMessage);
                }
            }
            finally
            {
                if (client != null)
                {
                    client.Close();
                }
            }
            return(result);
        }
        private void HandleMessages()
        {
            if (messageQueue == null)
            {
                return;
            }
            ArrayList q = (ArrayList)messageQueue.Clone();

            messageQueue.Clear();

            foreach (MDMessage msg in q)
            {
                if (msg is DebugMessage)
                {
                    if (DebugLog == null)
                    {
                        continue;
                    }

                    DebugMessage msg2 = (DebugMessage)msg;
                    DebugLog(msg2.message);
                    continue;
                }
                if (msg is NoteOnMessage)
                {
                    if (NoteOn == null)
                    {
                        continue;
                    }

                    NoteOnMessage msg2 = (NoteOnMessage)msg;
                    NoteOn(msg2.part, msg2.num, msg2.velocity);
                    continue;
                }
                if (msg is NoteOffMessage)
                {
                    if (NoteOff == null)
                    {
                        continue;
                    }

                    NoteOffMessage msg2 = (NoteOffMessage)msg;
                    NoteOff(msg2.part, msg2.num);
                    continue;
                }
                if (msg is ParamChangeMessage)
                {
                    if (ParamChange == null)
                    {
                        continue;
                    }

                    ParamChangeMessage msg2 = (ParamChangeMessage)msg;
                    ParamChange(msg2.part, msg2.param, msg2.value);
                    continue;
                }
                if (msg is BeatTickMessage)
                {
                    if (BeatTick == null)
                    {
                        continue;
                    }

                    BeatTickMessage msg2 = (BeatTickMessage)msg;
                    BeatTick(msg2.tick, msg2.beat, msg2.bar);
                    continue;
                }
                if (msg is BeatMessage)
                {
                    if (Beat == null)
                    {
                        continue;
                    }

                    BeatMessage msg2 = (BeatMessage)msg;
                    Beat(msg2.beat, msg2.bar);
                    continue;
                }
                if (msg is BarMessage)
                {
                    if (Bar == null)
                    {
                        continue;
                    }

                    BarMessage msg2 = (BarMessage)msg;
                    Bar(msg2.bar);
                    continue;
                }
                if (msg is TempoChangeMessage)
                {
                    if (TempoChange == null)
                    {
                        continue;
                    }

                    TempoChangeMessage msg2 = (TempoChangeMessage)msg;
                    TempoChange(msg2.bpm);
                    continue;
                }
                if (msg is NewMusicalSeedMessage)
                {
                    if (NewMusicalSeed == null)
                    {
                        continue;
                    }

                    NewMusicalSeedMessage msg2 = (NewMusicalSeedMessage)msg;
                    NewMusicalSeed(msg2.name);
                    continue;
                }
                if (msg is CueChangeMessage)
                {
                    if (CueChange == null)
                    {
                        continue;
                    }

                    CueChangeMessage msg2 = (CueChangeMessage)msg;
                    CueChange(msg2.cue, msg2.seedName, msg2.style);
                    continue;
                }
                if (msg is ProjectLoadMessage)
                {
                    if (ProjectLoad == null)
                    {
                        continue;
                    }

                    //ProjectLoadMessage msg2 = (ProjectLoadMessage)msg;
                    ProjectLoad();
                    continue;
                }
            }
        }