Vous êtes ici : 6.0 > Guide de l'administrateur > Scripts automatisés

Scripts automatisés

K-Portal / K-Sup vous permet d'exécuter à tout moment des scripts (indexation des contenus, synchronisation LDAP , génération des sites maps...) et de suivre l'exécution automatique et manuelle de ces derniers.


Planification des scripts

Il est possible de planifier l'ensemble des scripts disponibles sur l'application.
Avec le module supervision
Si vous disposez du module Supervision, le paramétrage peut se faire directement via l'interface du back-office via l'écran "Traitements planifiés" des scripts automatisés, soit en créant un nouveau traitement planifié, soit en ajoutant le script à un traitement planifié existant. À l'ajout d'un traitement ou à la modification, il est possible de modifier l'horaire et la fréquence d'exécution via une expression cron.

Sans le module supervision
Si vous ne disposez pas du module Supervision, il faudra modifier le paramétrage de l'application afin de rajouter à la main les scripts à exécuter.
Par défaut, l'application possède 3 traitements planifiés : l'indexation des contenus, l'upload de médias et la maintenance nocturne. La fréquence d'exécution est paramétrée via les fichiers properties de l'application.
Il est possible de changer les horaires par défaut en modifiant l'expression cron dans les paramètres suivants :
  • "scheduler.scanSiteSequenceTrigger.cronExpression" pour la maintenance nocture
  • "scheduler.indexerTrigger.cronExpression" pour l'indexation
  • "scheduler.mediaUploadTrigger.cronExpression" pour l'upload de média
Si le script n'est pas paramétré par défaut, il faut déclarer un traitement planifié afin de le rajouter.

<!-- Ici l'exemple de la déclaration de l'indexation -->
    <bean id="indexerTrigger" class="com.kportal.scheduling.service.SequenceTriggerImpl">
        <property name="description" value="Batch d'indexation des contenus" />
        <property name="cronExpression" value="${scheduler.indexerTrigger.cronExpression}" />
        <property name="sequence">
            <map>
                <entry key="1">
                    <bean class="com.kportal.scheduling.spring.quartz.SequenceJobDetailDecorator">
                        <property name="decoratedJobDetail" ref="indexerJob" />
                        <property name="blocking" value="true" />
                    </bean>
                </entry>
            </map>
        </property>
    </bean>
Dans l'exemple ci-dessus, on déclare un bean Spring de type "SequenceTriggerImpl" avec les paramètres suivants :
  • description : la description du traitement planifié
  • cronExpression : l'horaire auquel il doit se lancer
  • sequence : l'ensemble des scripts à exécuter
Ce dernier attribut est une Map java contenant, en clé l'ordre d'exécution du script et en valeur le script lui-même. Le script doit être de type "SequenceJobDetailDecorator" et posséder au minimum la propriété "decoratedJobDetail" contenant le bean du script à exécuter et la propriété "blocking" pour savoir si l'échec du script doit bloquer ou non l'enchainement des autres scripts.