Example #1
0
        private static Task DoHugeWork()
        {
            Console.WriteLine("Huge work launched");

            return(locker.ExecuteAsync(async context =>
            {
                Console.WriteLine("Huge work starting");

                // stage 1 - 15 seconds
                await Task.Delay(15000);
                await context.RenewLeaseAsync(TimeSpan.FromSeconds(20));
                Console.WriteLine("Getting more time to get the work done");

                // stage 2 - 15 seconds
                await Task.Delay(15000);
                await context.RenewLeaseAsync(TimeSpan.FromSeconds(20));
                Console.WriteLine("Getting more time to get the work done");

                // stage 3 - 15 seconds
                await Task.Delay(15000);
                await context.RenewLeaseAsync(TimeSpan.FromSeconds(20));
                Console.WriteLine("Getting more time to get the work done");

                // stage 4 - 15 seconds
                await Task.Delay(15000);

                Console.WriteLine("Huge work finished");
            }));
        }
Example #2
0
        private static Task DoWork(IDistributedLock locker, int number, string key)
        {
            Console.WriteLine($"Worker {key} work n {number} launched");

            return(locker.ExecuteAsync(async context =>
            {
                Console.WriteLine($"Worker {key} work n {number} starting");
                await Task.Delay(2000);
                Console.WriteLine($"Worker {key} work n {number} finished");
            }));
        }
Example #3
0
        private static Task DoWork(int number)
        {
            Console.WriteLine($"Node 1 work n {number} launched");

            return(locker.ExecuteAsync(async context =>
            {
                Console.WriteLine($"Node 1 work n {number} starting");
                await Task.Delay(2000);
                Console.WriteLine($"Node 1 work n {number} finished");
            }));
        }