Esempio n. 1
0
        static async Task RunLoop(IEndpointInstance endpointInstance)
        {
            while (true)
            {
                Console.WriteLine("Enter a number of sagas to start then press enter.");

                int numberToSend;

                if (int.TryParse(Console.ReadLine(), out numberToSend))
                {
                    Console.WriteLine();
                    List <Task> tasks = new List <Task>();
                    for (var i = 0; i < numberToSend; i++)
                    {
                        var command = new StartProcessingSaga
                        {
                            UniqueSagaId = Guid.NewGuid(),
                            Username     = $"User-{i}"
                        };
                        Logger.Info($"Starting saga = {command.Username}");

                        tasks.Add(endpointInstance.Send(command));
                    }

                    await Task.WhenAll(tasks).ConfigureAwait(false);

                    Console.WriteLine($"Started {numberToSend} sagas.");
                }
            }
        }
Esempio n. 2
0
        public async Task Handle(StartProcessingSaga message, IMessageHandlerContext context)
        {
            Data.UniqueSagaId = message.UniqueSagaId;
            Data.Username     = message.Username;

            //Setup the first timeout
            var timeout = CreateCheckForDataTimeout(context);

            Logger.Info($"Created saga {Data.UniqueSagaId} for user {Data.Username}.");
            await timeout.ConfigureAwait(false);
        }