Spring MVC, comment obtenir de l'avancement de l'exécution asynchrone de la tâche

Je voudrais commencer une tâche asynchrone de l'intérieur contrôleur comme dans le code suivant sniplet de Printemps docs.

import org.springframework.core.task.TaskExecutor; 

public class TaskExecutorExample { 

  private class MessagePrinterTask implements Runnable { 

    private int cn; 

    public MessagePrinterTask() { 

    } 

    public void run() { 
//dummy code 
for (int i = 0; i < 10; i++) { 
cn = i; 
} 
} 

} 

private TaskExecutor taskExecutor; 

public TaskExecutorExample(TaskExecutor taskExecutor) { 
    this.taskExecutor = taskExecutor; 
  } 

  public void printMessages() { 

      taskExecutor.execute(new MessagePrinterTask()); 

  } 
} 

par la suite dans annother demande (dans le cas où la tâche est en cours d'exécution) j'ai besoin de vérifier l'état d'avancement de la tâche. Fondamentalement obtenir la valeur de cn.

Quelle serait la meilleure approche dans Spring MVC, une façon d'éviter les problèmes de synchronisation.

Grâce

Pepa Procházka

OriginalL'auteur Josef Procházka | 2012-06-05