예제 #1
0
        /// <summary>
        /// StackExchange.Redis 实现秒杀
        /// </summary>
        /// <param name="id"></param>
        /// <param name="minute"></param>
        public static void Seckill1(string id, int minute)
        {
            RedisHelper.SetStringValue("stock", "10");
            Console.WriteLine($"在{minute}分0秒开始抢购");

            var start = true;

            while (start)
            {
                if (minute == DateTime.Now.Minute)
                {
                    start = false;

                    for (int i = 0; i < 10; i++)
                    {
                        string name = $"客户端{id}:{i}";
                        Task.Run(() =>
                        {
                            long result = RedisHelper.StringDecrement("stock");
                            if (result >= 0)
                            {
                                Console.WriteLine($"{name}******************抢购成功**************");
                            }
                            else
                            {
                                Console.WriteLine($"{name}抢购失败");
                            }
                        });
                    }
                }
            }
        }