Export CSV plus long

Ok on a trouvé le problème en passant dans le JobQueue.push.

A mon avis c’est lié à un correctif suite à une remontée SonarQube.

  • Avant chaque worker faisait un run() du thread/runnable = appel bloquant, mais faire un run ce n’est pas exécuter le cycle de vie du Thread, c’est juste un appel à la méthode run, c’est mal.
  • Ca a été remplacé par un start() qui lance le thread proprement de manière asynchrone mais du coup ça redonne la main au worker qui continue de dépiler trop vite !

On va ajouter un join() pour bloquer le worker et attendre la fin de la tache avant de dépiler la suivante.

image

J’ai utilisé un Thread.sleep(30s) dans l’exemple à la place de l’export.
On voit bien que les taches sont dépilées 10 par 10.
Ce sera poussé dans une prochaine révision.

1 Like