Commandes de contrôleur à exécution longue

Si une commande de contrôleur prend beaucoup de temps à s'exécuter, vous pouvez diviser la commande en deux commandes. La première commande, qui est exécutée à la suite d'une requête URL, ajoute simplement la deuxième commande au planificateur, de sorte qu'elle s'exécute en tant que travail en arrière-plan.

Diagramme illustrant le flux entre la commande de contrôleur1, le planificateur et la commande de contrôleur2 expliqué dans le paragraphe suivant.

Le flux indiqué dans le diagramme précédent est le suivant :

  1. La commande de contrôleur1 est exécutée à la suite d'une requête URL.
  2. La commande de contrôleur1 ajoute un travail au planificateur. Le travail est la commande de contrôleur2. La commande de contrôleur1 renvoie une vue immédiatement après l'ajout du travail au planificateur.
  3. Le planificateur exécute la commande de contrôleur2 en tant que travail en arrière-plan.

Dans ce scénario, le client obtient généralement le résultat de la commande de contrôleur2. La commande de contrôleur2 doit écrire l'état du travail dans la base de données.