コード例 #1
0
        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());
        }
コード例 #2
0
 private WorkerDiscovered <StartUnitTest, UnitTestResult> GenerateWorker(SystemStatusEvent app, object[] meta, string id)
 {
     return(new WorkerDiscovered <StartUnitTest, UnitTestResult>() // 8-|
     {
         Worker = new bfgWorkerRxnManagerBridge(_appCmds, _rxnManager, _appUpdates, ToInfo(meta))
         {
             Route = RouteExtensions.GetRoute(app),
             Name = $"{app.SystemName}_{Guid.NewGuid().ToString().Split('-').FirstOrDefault()}",
             Ip = app.IpAddress,
         }
     });
 }