private void GetResult(string configFile, int taskNumber = 0) { int sleptSoFar = 0; while (worker != null && worker.IsAlive) { Thread.Sleep(sleptSoFar += 500); if (sleptSoFar > SleepTime) Response.Redirect(Request.RawUrl); } var driver = new MapReduceDriver(configFile); var fi = new FileInfo(driver.Tasks[0].Output.Location); if (worker == null && fi.LastWriteTime.AddSeconds(5) < DateTime.Now) { Start(configFile); Response.Redirect(Request.RawUrl); } SendFile(fi); }
private void Start(string configFile) { if (string.IsNullOrEmpty(configFile)) { JsonMessage("config file name not provided."); return; } if (worker != null) return; worker = new Thread(new ParameterizedThreadStart(MapReduceThread)); MapReduceDriver dr = new MapReduceDriver(configFile); worker.Start(dr); Session[WorkerThreadKey] = worker; JsonMessage("Started"); }
public StatusMessage Start(string config, IDictionary<string, string> parameters) { var statuslocal = new StatusMessage(); if (string.IsNullOrEmpty(config)) { statuslocal.Type = StatusType.Error; statuslocal.Message = "Invalid config name"; } else if (worker != null) { statuslocal.Type = StatusType.Error; statuslocal.Message = "A MapReduce is already running"; } else { driver = new MapReduceDriver(Path.Combine("configs",config)); SetParameters(driver.Tasks, parameters); worker = new Thread(new ThreadStart(MapReduceThread)); worker.Start(); status.ResultSetId = statuslocal.ResultSetId = Guid.NewGuid(); } return statuslocal; }