Added background automatic rebuilding at startup.
This commit is contained in:
parent
554d9c41ab
commit
6f63e7cb95
3 changed files with 34 additions and 0 deletions
|
@ -1163,6 +1163,20 @@ namespace ScrewTurn.Wiki {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the last page indexing.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The last page indexing DateTime.</value>
|
||||||
|
public static DateTime LastPageIndexing {
|
||||||
|
get {
|
||||||
|
return DateTime.ParseExact(GetString(Provider.GetSetting("LastPageIndexing"), DateTime.Now.AddYears(-10).ToString("yyyyMMddHHmmss")),
|
||||||
|
"yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
Provider.SetSetting("LastPageIndexing", value.ToString("yyyyMMddHHmmss"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -189,6 +189,25 @@ namespace ScrewTurn.Wiki {
|
||||||
if(Pages.FindPage(Settings.DefaultPage) == null) CreateMainPage();
|
if(Pages.FindPage(Settings.DefaultPage) == null) CreateMainPage();
|
||||||
|
|
||||||
Log.LogEntry("ScrewTurn Wiki is ready", EntryType.General, Log.SystemUsername);
|
Log.LogEntry("ScrewTurn Wiki is ready", EntryType.General, Log.SystemUsername);
|
||||||
|
|
||||||
|
System.Threading.ThreadPool.QueueUserWorkItem(ignored => {
|
||||||
|
if((DateTime.Now - Settings.LastPageIndexing).TotalDays > 7) {
|
||||||
|
Settings.LastPageIndexing = DateTime.Now;
|
||||||
|
System.Threading.Thread.Sleep(10000);
|
||||||
|
using(MemoryStream ms = new MemoryStream()) {
|
||||||
|
using(StreamWriter wr = new System.IO.StreamWriter(ms)) {
|
||||||
|
System.Web.HttpContext.Current = new System.Web.HttpContext(new System.Web.Hosting.SimpleWorkerRequest("", "", wr));
|
||||||
|
foreach(var provider in Collectors.PagesProviderCollector.AllProviders) {
|
||||||
|
if(!provider.ReadOnly) {
|
||||||
|
Log.LogEntry("Starting automatic rebuilding index for provider: " + provider.Information.Name, EntryType.General, Log.SystemUsername);
|
||||||
|
provider.RebuildIndex();
|
||||||
|
Log.LogEntry("Finished automatic rebuilding index for provider: " + provider.Information.Name, EntryType.General, Log.SystemUsername);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -80,6 +80,7 @@ namespace ScrewTurn.Wiki.PluginFramework {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the current HTTP Context object.
|
/// Gets the current HTTP Context object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <remarks>The context might not be valid when doing an index rebuild (see <see cref="ForIndexing"/>).</remarks>
|
||||||
public HttpContext HttpContext {
|
public HttpContext HttpContext {
|
||||||
get { return httpContext; }
|
get { return httpContext; }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue