2017-10-15 21 views
-1

Je suis toujours à la recherche d'une solution pour implémenter un appel asynchrone avant de retourner une réponse. En d'autres termes, j'ai un processus asynchrone à long qui devrait commencer à courir avant de retourner une réponse, un utilisateur ne devrait pas attendre longtemps pour la fin de ce processus:Comment implémenter une fonction asynchrone avec Rest Api Bundle dans Symfony 3.2

$data = .... 

...//Here call to an asynchronous function <<---- 

return $this->getSuccessResponse($data); 

J'ai essayé avec des événements, fil , Processus, mais aucun résultat. Que dois-je faire? (quelque chose attend RabbitMQ)

+0

Wade @ Robert, merci pour les corrections de votre grammaire. –

Répondre

1

Vous pouvez utiliser un système de files d'attente tel que Beanstalk. Avec ce lot LeezyPheanstalkBundle vous pouvez gérer les files d'attente.

Dans le contrôleur, insérez le travail dans la file d'attente. Et, dans une commande exécutée avec le superviseur, exécutez votre tâche.

Edit:

Vous pouvez utiliser un EventSubscriber

+0

Cela a l'air intéressant, d'ailleurs, j'ai essayé avec les événements, mais la documentation officielle de Symfony me rend malade parfois, ce n'est pas clair et ils le rendaient plus difficile à comprendre. –