private void RegisterSelf(IApplicationBuilder app, ILogger logger) { var hostInfo = new WorkerHostInfo() { Uri = app.ServerFeatures.Get <IServerAddressesFeature>().Addresses.First(), CoreCount = Environment.ProcessorCount }; var client = new RestClient(); client.AddDefaultHeader(Constants.ApiKeyName, Configuration["ApiKey"]); var request = new RestRequest(Configuration["RegisterUri"]); request.AddJsonBody(hostInfo); var response = client.Post(request); if (!response.IsSuccessful) { logger?.LogError($"Could not register worker: {response.StatusCode} {response.StatusDescription}"); // Environment.Exit(-1); } else { logger?.LogInformation("Successfully registered!"); } }
public static async Task <ClientHelper> AsyncNew(WorkerHostInfo worker, GraphDto graph) { var task = new Task <ClientHelper>(() => new ClientHelper(worker, graph)); task.Start(); return(await task); }
public void RegisterWorker(WorkerHostInfo info) { if (_registeredWorkers.ContainsKey(info.Uri)) { throw new WorkerAlreadyRegisteredException(info.Uri); } _registeredWorkers.Add(info.Uri, info); _logger.LogInformation($"Registered {info.Uri} worker"); }
private ClientHelper(WorkerHostInfo worker, GraphDto graph) { _restClient = new RestClient(worker.Uri + "/api") { CookieContainer = new CookieContainer(), ReadWriteTimeout = 500000, Timeout = 500000 }; _workerHost = worker; var registerRequest = new RestRequest("/task", Method.POST); var graphJson = JsonSerializer.Serialize(graph); registerRequest.AddJsonBody(graphJson); var response = _restClient.Execute(registerRequest); if (!response.IsSuccessful) { ThrowExceptionOnNotSuccessfulResponse(response); } }
public IActionResult RegisterWorker(WorkerHostInfo info) { _iWorkerHostService.RegisterWorker(info); return(NoContent()); }