Пример #1
0
        private static Task Run(DateTime startTime, RedisStorage redisStorage)
        {
            var worker = new Worker(redisStorage);

            Task.Run(() =>
            {
                for (;;)
                {
                    try
                    {
                        var line = Console.ReadLine();
                        if (!string.IsNullOrEmpty(line))
                        {
                            worker.ExecuteCommand(line);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"Failed: {e.Message}");
                    }
                }
            });

            return(worker.Do(startTime.Add(Params.ShutdownAfter)));
        }
Пример #2
0
        public Worker(RedisStorage redisStorage)
        {
            this.redisStorage = redisStorage;
            this.diskStorage  = new DiskStorage(Params.OutputFolder);
            this.hashCache    = new HashCache(3, capacity: 512 * 1024);

            this.semaphore = new SemaphoreSlim(1);
        }