Frage

Wir haben eine inszenierten Umgebung mit 1 CMS und 3 Slave-Server

Ich möchte eine Seite auf dem Slave-Server erstellen, die veröffentlichen durch den Staging-Modul auf einem erfolgreichen genannt werden, die alle Indizes und die Links-Datenbank neu erstellen wird.

Ich weiß, dass ich verwenden können:

Globals.LinkDatabase.Rebuild(Factory.GetDatabase("web"));

den Link Datenbank neu zu erstellen.

Wie kann ich den obigen Code in einem separaten Prozess erhalten, der den Zugriff auf den Sitecores Kontext hat und auch, wie ich die Indizes alle für die Web-Datenbank Sie wieder aufzubauen - wieder in einem separaten Hintergrund-Thread.

Danke

War es hilfreich?

Lösung

Ich habe über dieses Problem kommen, bevor sie mit Sitecores und nahm eine etwas andere Zielsetzung. Anstatt eine Seite zu haben, die das Staging-Modul ruft ich in der veröffentlichen angezapft. Endereignis und hinzugefügt einen benutzerdefinierten Handler den Link Datenbank neu zu erstellen

<event name="publish:end">
    <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
        <sites hint="list">
            <site>website</site>
        </sites>
    </handler>
    <handler type="Sitecore.EventHandlers.CredentialCacheClearer, Sitecore.EventHandlers" method="ClearCache">
        <sites hint="list">
            <site>website</site>
        </sites>
    </handler>

    // Custom Publish Action Below
    <handler type="Customized.Publish.LinkDatabase, Customized" method="Process"/>
</event>
namespace Customized.Publish
{
    public class LinkDatabase
    {
        /// <summary>
        /// Rebuild the web link database.
        /// </summary>

        public void Process()
        {
            // Web db
            Sitecore.Globals.LinkDatabase.Rebuild(Sitecore.Configuration.Factory.GetDatabase("web"));
        }

        /// <summary>
        /// For invoking as an event, typically publish:end.
        /// </summary>
        public void Process(object sender, EventArgs args)
        {
            this.Process();
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top