Comment arrêter une tache trop longue?

,

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

@wdemichiel
@fabrice

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.