public WorkPackage FetchWork(MachineData pMachineData) { //debug test NewLogMessageEvent?.Invoke($"New Work Request received from {this.Context?.ConnectionId}"); var work = WorkRequestedEvent?.Invoke(pMachineData.OperatingSystem, this.Context?.ConnectionId); return(work); }
public override void Initialize() { CommHub.NewClientEvent += NotifyNewClientEvent; CommHub.ClientDisconnectedEvent += NotifyClientDisconnectedEvent; CommHub.NewLogMessageEvent += NotifyNewLogMessageEvent; CommHub.NewClientLogMessageEvent += NewClientLogMessageEvent; CommHub.NewClientErrorMessageEvent += NewclientErrorMessageEvent; CommHub.MachineDataReceivedEvent += (id, data) => { var client = ConnectedClients.FirstOrDefault(t => t.ID == id); if (client != null) { client.ContainerVersion = data.ContainerVersion; client.OperatingSystem = data.OperatingSystem; client.ProcessingUnit = data.ProcessingUnit; client.MachineName = data.Name; NotifyClientUpdatedEvent(client); } }; CommHub.ClientStatusUpdatedEvent += (id, status) => { var client = ConnectedClients.FirstOrDefault(t => t.ID == id); if (client != null) { client.IsWorking = status.IsWorking; client.LastEpochDuration = status.LastEpochDuration; client.CurrentEpoch = status.CurrentEpoch; client.CurrentWorkParameters = status.CurrentWorkParameters; NotifyClientUpdatedEvent(client); } }; CommHub.WorkRequestedEvent += (os, id) => WorkRequestedEvent?.Invoke(os, id); CommHub.TrainingResultsReceivedEvent += (results, id) => TrainingResultsReceivedEvent?.Invoke(results, id); CommHub.PredictionResultsReceivedEvent += (results, id) => PredictionResultsReceivedEvent?.Invoke(results, id); NotifyNewLogMessageEvent("Attempting to initialize SignalR listener on port 8080"); SignalRStartup.Run("http://0.0.0.0:8080/").ContinueWith(itask => { NotifyNewLogMessageEvent($"Could not start SignalR listener on port 8080. Are you running the application as admin? Exception: {itask.Exception.Message}"); }, TaskContinuationOptions.OnlyOnFaulted) .ContinueWith(itask => { NotifyNewLogMessageEvent($"Started SignalR listener on port 8080"); }, TaskContinuationOptions.OnlyOnRanToCompletion); base.Initialize(); }
public override void Initialize() { CommHub.NewClientEvent += NotifyNewClientEvent; CommHub.ClientDisconnectedEvent += NotifyClientDisconnectedEvent; CommHub.NewLogMessageEvent += NotifyNewLogMessageEvent; CommHub.NewClientLogMessageEvent += NewClientLogMessageEvent; CommHub.MachineDataReceivedEvent += (id, data) => { var client = _clients.FirstOrDefault(t => t.ID == id); if (client != null) { client.ContainerVersion = data.ContainerVersion; client.OperatingSystem = data.OperatingSystem; client.ProcessingUnit = data.ProcessingUnit; client.MachineName = data.Name; NotifyClientUpdatedEvent(client); } }; CommHub.ClientStatusUpdatedEvent += (id, status) => { var client = _clients.FirstOrDefault(t => t.ID == id); if (client != null) { client.IsWorking = status.IsWorking; client.LastEpochDuration = status.LastEpochDuration; client.CurrentEpoch = status.CurrentEpoch; client.CurrentWorkParameters = status.CurrentWorkParameters; NotifyClientUpdatedEvent(client); } }; CommHub.WorkRequestedEvent += (os, id) => WorkRequestedEvent?.Invoke(os, id); CommHub.ResultsReceivedEvent += (results, id) => ResultsReceivedEvent?.Invoke(results, id); try { _signalrapp = WebApp.Start <SignalRStartup>("http://*:8080/"); NotifyNewLogMessageEvent("SignalR listener initialized to port 8080"); } catch (Exception ex) { NotifyNewLogMessageEvent($"Could not start SignalR listener on port 8080. Are you running the application as admin? Exception: {ex.Message}"); } base.Initialize(); }