Пример #1
0
        public OkResult Put(FibonacciData data)
        {
            Logger.WriteLog($"Received new value {data.Value} for calculation {data.CalculationId + 1}");

            Task.Run(() =>
            {
                try
                {
                    FibonacciData next_data = context.CalculateNext(data);
                    Logger.WriteLog($"Сalculated next value {next_data.Value} for calculation {next_data.CalculationId + 1}");

                    using (IBus bus = RabbitHutch.CreateBus("host=localhost"))
                    {
                        bus.Publish(next_data);
                    }


                    Logger.WriteLog($"Sending next value {next_data.Value} for calculation {next_data.CalculationId + 1}");
                }
                catch (Exception ex)
                {
                    Logger.WriteLog($"Calculation {data.CalculationId + 1} stopped.\nError occurred: " + ex.Message);
                    return;
                }
            });

            Logger.WriteLog($"Sending confirmation of receipt of value {data.Value} for calculation {data.CalculationId + 1}");
            return(Ok());
        }
Пример #2
0
        private Task HandleFibonacciMessage(FibonacciData data)
        {
            return(Task.Run(() =>
            {
                try
                {
                    Logger.WriteLog($"Received new value {data.Value} for calculation {data.CalculationId + 1}");

                    FibonacciData next_data = context.CalculateNext(data);
                    Logger.WriteLog($"Сalculated next value {next_data.Value} for calculation {data.CalculationId + 1}");

                    httpClient.PutAsync(target, next_data.ToStringContent()).Wait();

                    Logger.WriteLog($"Next value {next_data.Value} for calculation {data.CalculationId + 1} has been sent");
                }
                catch (Exception ex)
                {
                    Logger.WriteLog($"Calculation {data.CalculationId + 1} stopped.\nError occurred: " + ex.Message);
                    return;
                }
            }));
        }
Пример #3
0
 public IndexModel(FibonacciData data)
 {
     ComputationData = data;
 }