public IObservable <IRxn> OnAppHeartBeat(IAppStatusManager updates, SystemStatusEvent app, object[] meta) { var heartBeat = new TestArenaWorkerHeadbeat() { Route = RouteExtensions.GetRoute(app), Name = app.SystemName, IpAddress = app.IpAddress, Host = ParseValueFromMetaWithId("Id", meta), Workers = ParseValueFromMetaWithId("Free Workers", meta), ComputerName = ParseValueFromMetaWithId("ComputerName", meta), UserName = ParseValueFromMetaWithId("UserName", meta), Tags = ParseValueFromMetaWithId(bfgTagWorkflow.WorkerTag, meta) }; //update info / tags var workerInfoUpdate = new WorkerInfoUpdated() { Name = app.SystemName, Info = ToInfo(meta) }; BalanceRemoteWorkersWithCluster(heartBeat, app, meta); return(new IRxn[] { heartBeat, workerInfoUpdate }.ToObservableSequence()); }
/// <summary> /// Updates apps that connect to the /// </summary> /// <param name="updates"></param> /// <param name="app"></param> /// <returns></returns> public IObservable <IRxn> OnNewAppDiscovered(IAppStatusManager updates, SystemStatusEvent app, object[] meta) { return(OnAppHeartBeat(updates, app, meta)); }