Beispiel #1
0
        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!");
            }
        }
Beispiel #2
0
        public static async Task <ClientHelper> AsyncNew(WorkerHostInfo worker,
                                                         GraphDto graph)
        {
            var task = new Task <ClientHelper>(() => new ClientHelper(worker, graph));

            task.Start();
            return(await task);
        }
Beispiel #3
0
 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");
 }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
 public IActionResult RegisterWorker(WorkerHostInfo info)
 {
     _iWorkerHostService.RegisterWorker(info);
     return(NoContent());
 }