Dans Simplicité, il existe un mécanisme de demande d’arrêt d’une tache longue / lancée par Action asynchrone ou via Crontab.
Dans le code de la méthode, il faut vérifier de temps en temps qu’il n’y a pas une demande d’arrêt. Exemple de méthode java d’une Action sur un objet :
public synchronized String myLongAction() {
try {
for (int i=0; i<1000000; i++) {
// Check every 100 items if the thread must stop
if (i>0 && i%100==0)
CronJob.checkForInterruptAndStop(this);
// Do something in the loop
AppLog.info("Doing Step "+i, getGrant());
}
return "Success";
}
catch (InterruptedException e) {
return "Stopped";
}
}
-
myLongAction
étant déclarée comme la méthode d’une Action de type Asynchrone. - Ensuite dans la liste Menu Exploitation/Taches asynchrones, il est possible
- de voir la tache dans son état En cours et de demander son arrêt avec le drapeau rouge.
- et d’y voir toutes les log (AppLog.info…) émise par la méthode