Symfony - фоновая задача из настройки формы - PullRequest
0 голосов
/ 09 января 2019

Знаете ли вы, как запустить фоновое задание в Symfony 4 на основе настройки формы? Это позволит избежать того, что пользователь должен оставаться в форме, пока задача не будет завершена. Идея заключается в том, что когда форма проверена, она запускает независимую фоновую задачу. Затем пользователь может продолжить навигацию и вернуться после завершения задачи, чтобы получить результаты.

Спасибо за вашу помощь,

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Очень простым решением для этого может быть следующая процедура:

  1. Форма действительна.
  2. Временный файл создан.
  3. Cronjob выполняется каждые пять минут и запускает команду Symfony.
  4. Команда проверяет, существует ли файл и является ли он пустым.
  5. Если это так, команда работает в фоновом режиме. Но перед этим команда записывает в файл свой идентификатор процесса, чтобы предотвратить повторное выполнение.
  6. Удалить файл после завершения команды.
  7. Пока файл существует, вы можете показать подсказку пользователю, что задача выполняется.
0 голосов
/ 09 января 2019

Вам необходимо использовать шаблон Message Bus. Symfony имеет собственную реализацию этого шаблона начиная с версии 4.1, представляя Messenger Component.

Документацию можно посмотреть здесь: https://symfony.com/doc/current/components/messenger.html

Чтобы заставить его работать, вам нужна какая-то внешняя программа, которая будет реализовывать Протокол AMQP . Самый популярный в мире PHP IMHO RabbitMQ .

...