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))); }
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); }