2010-10-08 14 views
0

Nous réfléchissons à des moyens de centraliser autant que possible nos tâches planifiées en faisant glisser un grand nombre de tâches depuis des fichiers web.config spécifiques à un site Web vers une tâche de planification Windows. Je peux imaginer que cela a des conséquences négatives, mais je veux les énumérer afin que je puisse me faire une bonne explication de ce qui fonctionnera le mieux. Nous avons différents types de tâches qui doivent être fait périodiquement comme par exemple:Quels sont les avantages de l'utilisation de tâches planifiées Web.config par exemple pour une tâche planifiée Windows

  • Keepalive < - appelle une page afin que le site ne sera pas recompiler toutes les 20 minutes (iis réglage)
  • Imports différents sites Web que nous exécutons < - Importations d'objets par exemple qui doivent être placés dans une base de données Sitecore.

Sitecore dispose de son propre planificateur, ce qui facilite l'exécution des importations en utilisant simplement ce planificateur. De l'autre côté, Sitecore possède également son propre paramètre "KeepAlive" dans le fichier web.config qui permet d'accélérer le fonctionnement du site.

Quels seront les avantages et les inconvénients de ce problème et que conseillerez-vous? Les tâches planifiées sont-elles centralisées? Fractionnez les importations normales des tâches Keepalive et placez-les dans un environnement centralisé?

Répondre

1

La planification native de Sitecore est exécutée dans le contexte de Sitecore, ce qui signifie que vous pouvez facilement communiquer avec Sitecore de cette façon, mais que l'application doit être active pour que la tâche s'exécute. C'est à peu près pourquoi il est impossible d'exécuter un agent planifié à un moment précis, uniquement à des intervalles planifiés, car il n'y a aucune garantie que l'application est en bonne santé à un moment donné.

Les tâches Windows s'exécutent en dehors du contexte et peuvent être planifiées à un moment précis, mais cette approche manque du contexte Sitecore nécessaire, ce qui peut compliquer légèrement la conception, mais vous pouvez toujours créer un service Web Sitecore .

Parmi les exemples réels du monde que j'ai vu où l'approche du planificateur Windows a été mis en œuvre est le scénario de « publication à des moments précis »: http://sitecoreblog.alexshyba.com/2007/02/publish-at-specific-time.html Aussi j'ai vu des données volumineuses pousse mises en œuvre, comme celui que vous parlez . Vous pouvez pratiquement avoir un code d'importation exécuté en dehors du contexte Sitecore dans une application de console. Ayant accès à Sitecore.Configuration.Factory, vous pouvez instancier des bases de données, obtenir des objets et créer des éléments. C'est tout ce dont tu as besoin. De plus, il est plus efficace d'exécuter un tel code dans un contexte http.

+0

Merci Alex pour votre réponse claire! – Younes

0

Il existe également une troisième option.

Dans Sitecore, vous pouvez créer des tâches dans Sitecore/système/tâches/horaires/

qui appelle à son tour une commande dans Sitecore/système/tâches/commandes/

que vous pouvez créer avec une référence à une méthode qui s'exécute

Je ne l'ai pas essayé moi-même, donc je ne peux pas aider beaucoup plus que cela.

Mais là, vous pouvez définir une heure spécifique.

Il existe de l'aide here (bien que ce soit pour Sitecore 5.3).

+0

Je connais cette option, merci de la mentionner: D! – Younes