public AddGeneratorTask(LuceneQueryable queryable, IIndexableGenerator generator) { this.queryable = queryable; this.generator = generator; this.Tag = generator.StatusName; }
public Scheduler.Task NewAddTask(IIndexableGenerator generator) { AddGeneratorTask task; task = new AddGeneratorTask(this, generator); task.Source = this; return(task); }
private void PostCrawlHook() { Logger.Log.Debug("Done crawling '{0}'", current_dir.FullName); queryable.DoneCrawlingOneDirectory(current_dir); current_generator = null; current_dir = null; }
private void PostCrawlHook () { Logger.Log.Debug ("Done crawling '{0}'", current_dir.FullName); queryable.DoneCrawlingOneDirectory (current_dir); current_generator = null; current_dir = null; }
private void AddIIndexableTask(IIndexableGenerator generator, string tag) { if (generator == null) { return; } Scheduler.Task task = queryable.NewAddTask(generator); task.Tag = tag; queryable.ThisScheduler.Add(task); }
private void AddTask (IIndexableGenerator generator, string tag) { if (queryable.ThisScheduler.ContainsByTag (tag)) { Logger.Log.Info ("Not adding already running task: {0}", tag); return; } Scheduler.Task task = queryable.NewAddTask (generator); task.Tag = tag; queryable.ThisScheduler.Add (task); }
private void AddIIndexableTask(IIndexableGenerator generator, string tag) { if (queryable.ThisScheduler.ContainsByTag(tag)) { Logger.Log.Debug("Not adding a Task for already running: {0}", tag); return; } Scheduler.Task task = queryable.NewAddTask(generator); task.Tag = tag; queryable.ThisScheduler.Add(task); }
private void AddIIndexableTask (IIndexableGenerator generator, string tag) { if (generator == null) return; Scheduler.Task task = queryable.NewAddTask (generator); task.Tag = tag; queryable.ThisScheduler.Add (task); }
override protected void DoTaskReal () { // If our last generator is still doing stuff, just reschedule // and return. This keeps us from generating more tasks until // the last one we started runs to completion. if ((current_generator != null && current_generator.HasNextIndexable ()) || current_dir != null) { Reschedule = true; return; } lock (big_lock) { Log.Debug ("Running file crawl task"); current_dir = queryable.GetNextDirectoryToCrawl (); if (current_dir == null) { Log.Debug ("Done crawling files!!!"); SetIsActive (false, current_dir); return; } SetIsActive (true, current_dir); } if (!current_dir.IsAttached) { Reschedule = true; return; } if (FileSystemQueryable.Debug) { Logger.Log.Debug ("Starting crawl of '{0}'", current_dir.FullName); if (current_dir.State == DirectoryState.PossiblyClean) Log.Debug ("It looks as though we've crawled '{0}' before", current_dir.FullName); } // Schedule a DirectoryIndexableGenerator // for that directory, and then reschedule ourselves. try { current_generator = new DirectoryIndexableGenerator (queryable, current_dir); } catch (DirectoryNotFoundException ex) { Logger.Log.Debug ("Couldn't crawl '{0}'", current_dir.FullName); // FIXME: If our attempt to crawl the directory fails, just // mark it as uncrawlable and move on. This isn't optimal behavior, // but works around bugs involving weird permissions for now. current_dir.MarkAsUncrawlable (); current_dir = null; } if (current_generator != null) { Scheduler.TaskGroup group; group = Scheduler.NewTaskGroup ("Crawl task group", null, our_post_hook); Scheduler.Task task; task = queryable.NewAddTask (current_generator); task.AddTaskGroup (group); SpawnChild (task); } Reschedule = true; }
override protected void DoTaskReal() { // If our last generator is still doing stuff, just reschedule // and return. This keeps us from generating more tasks until // the last one we started runs to completion. if ((current_generator != null && current_generator.HasNextIndexable()) || current_dir != null) { Reschedule = true; return; } lock (big_lock) { Log.Debug("Running file crawl task"); current_dir = queryable.GetNextDirectoryToCrawl(); if (current_dir == null) { Log.Debug("Done crawling files!!!"); SetIsActive(false, current_dir); return; } SetIsActive(true, current_dir); } if (!current_dir.IsAttached) { Reschedule = true; return; } if (FileSystemQueryable.Debug) { Logger.Log.Debug("Starting crawl of '{0}'", current_dir.FullName); if (current_dir.State == DirectoryState.PossiblyClean) { Log.Debug("It looks as though we've crawled '{0}' before", current_dir.FullName); } } // Schedule a DirectoryIndexableGenerator // for that directory, and then reschedule ourselves. try { current_generator = new DirectoryIndexableGenerator(queryable, current_dir); } catch (DirectoryNotFoundException ex) { Logger.Log.Debug("Couldn't crawl '{0}'", current_dir.FullName); // FIXME: If our attempt to crawl the directory fails, just // mark it as uncrawlable and move on. This isn't optimal behavior, // but works around bugs involving weird permissions for now. current_dir.MarkAsUncrawlable(); current_dir = null; } if (current_generator != null) { Scheduler.TaskGroup group; group = Scheduler.NewTaskGroup("Crawl task group", null, our_post_hook); Scheduler.Task task; task = queryable.NewAddTask(current_generator); task.AddTaskGroup(group); SpawnChild(task); } Reschedule = true; }
public Scheduler.Task NewAddTask (IIndexableGenerator generator) { AddGeneratorTask task; task = new AddGeneratorTask (this, generator); task.Source = this; return task; }
public AddGeneratorTask (LuceneQueryable queryable, IIndexableGenerator generator) { this.queryable = queryable; this.generator = generator; this.Tag = generator.StatusName; }