Historique de la page
L'appel de tâches asynchrones est nécessaire pour :
- la mise à jour des index
- l'expiration des tickets fermés mais non approuvés par les utilisateurs
- l'archivage des tickets fermés
- le rappel automatique des tickets reportés
Cette page propose une méthode de mise en place des appels asynchrones.
Sous Unix
Nous supposons ici que tous le répertoire de base du projet est /usr/local/helpdesk.
Bloc de code |
---|
[root@server helpdesk]# ls -al
total 96
-rwxr-xr-x 1 root root 78 2008-06-16 12:37 env.sh (version courante)
drwxr-xr-x 2 root root 69632 2008-05-21 12:22 files (fichiers attachés)
-rwxr-xr-x 1 root root 567 2008-03-28 10:16 helpdesk-cron.sh (script d'appel des tâches asynchrones)
-rwxr-xr-x 1 root root 292 2008-03-28 10:16 helpdesk.sh (script d'appel des tâches synchrones)
drwxr-xr-x 2 root root 4096 2008-06-18 11:50 index (indexation)
drwxr-xr-x 2 root root 4096 2008-06-17 06:08 log (traces d'exécution)
drwxr-xr-x 19 root root 4096 2008-06-16 12:38 src (sources des distributions)
|
Le fichier env.sh contient la version courante :
Bloc de code |
---|
#/bin/bash
. /etc/profile.d/java.sh
export ESUP_HELPDESK_VERSION=3.0.1
|
Le script helpdesk.sh sert à l'appel des tâches synchrones (start, stop, deploy, ...) :
Bloc de code |
---|
#!/bin/bash
. /usr/local/helpdesk/env.sh
echo Esup-Portail Helpdesk $ESUP_HELPDESK_VERSION, running ant task $1
pushd /usr/local/helpdesk/src/esup-helpdesk-quick-start-$ESUP_HELPDESK_VERSION > /dev/null
ant $1
popd > /dev/null
|
Le script helpdesk-cron.sh sert à l'appel des tâches asynchrones (update-index, archive-tickets, recall-tickets, ...) :
Bloc de code |
---|
#!/bin/bash
. /usr/local/helpdesk/env.sh
[ -z "$1" ] && { exit 1; }
export LOG_FILE=/usr/local/helpdesk/log/$1.log
echo ----------------------------------------------- >> $LOG_FILE
date >> $LOG_FILE
echo Esup-Portail Helpdesk $ESUP_HELPDESK_VERSION, running ant task $1 >> $LOG_FILE
pushd /usr/local/helpdesk/src/esup-helpdesk-quick-start-$ESUP_HELPDESK_VERSION > /dev/null
ant $1 >> $LOG_FILE
popd > /dev/null
|
Les appels des tâches asynchrones sont réalisés grâce à l'insertion des lignes suivantes dans le fichier /etc/crontab :
Bloc de code |
---|
00,05,10,15,20,25,30,35,40,45,50,55 * * * * root /usr/local/helpdesk/helpdesk-cron.sh update-index
02 * * * * root /usr/local/helpdesk/helpdesk-cron.sh expire-tickets
03 * * * * root /usr/local/helpdesk/helpdesk-cron.sh archive-tickets
01 0 * * * root /usr/local/helpdesk/helpdesk-cron.sh recall-tickets |
...