protected void Log(string message) { lock (this) { CantonUtilities.Log(message, "canton-log.txt"); } }
protected void LogError(string message) { lock (this) { Console.ForegroundColor = ConsoleColor.Red; CantonUtilities.Log(message, "canton-error.txt"); Console.ResetColor(); } }
public override IGraph CreateContentGraph(CatalogContext context) { if (!_graphUriFixed) { _graphUriFixed = true; INode rdfTypePredicate = _graph.CreateUriNode(Schema.Predicates.Type); Triple resource = _graph.GetTriplesWithPredicateObject(rdfTypePredicate, _graph.CreateUriNode(GetItemType())).First(); Uri oldUri = ((IUriNode)resource.Subject).Uri; Uri newUri = GetItemAddress(); CantonUtilities.ReplaceIRI(_graph, oldUri, newUri); } return(_graph); }
/// <summary> /// Canton jobs that can run many instances. /// </summary> static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine(".exe <config path> <thread count>"); Environment.Exit(1); } Console.CancelKeyPress += Console_CancelKeyPress; CantonUtilities.Init(); Config config = new Config(args[0]); int threadCount = 1; Int32.TryParse(args[1], out threadCount); CloudStorageAccount account = CloudStorageAccount.Parse(config.GetProperty("StorageConnectionString")); Queue <Func <CantonJob> > jobs = new Queue <Func <CantonJob> >(); // process gallery pages and nupkgs into catalog pages jobs.Enqueue(() => new CatalogPageJob(config, new AzureStorage(account, config.GetProperty("tmp")), CantonConstants.GalleryPagesQueue)); Stopwatch timer = new Stopwatch(); // avoid flooding storage TimeSpan minWait = TimeSpan.FromMinutes(2); while (_run) { timer.Restart(); CantonUtilities.RunManyJobs(jobs, threadCount); TimeSpan waitTime = minWait.Subtract(timer.Elapsed); Console.WriteLine("Completed jobs in: " + timer.Elapsed); if (waitTime.TotalMilliseconds > 0 && _run) { Console.WriteLine("Sleeping: " + waitTime.TotalSeconds + "s"); Thread.Sleep(waitTime); } } }