Запустить процесс symfony4 в качестве фоновой задачи (после отправки ответа http) - PullRequest
0 голосов
/ 28 июня 2019

Использование:

  • Symfony 4.2
  • PHP 7.0

У меня сейчас есть эта функция:

  • Функция A: функция, которая синхронизирует репозиторий dropbox с моей базой данных
  • Процесс, который берет список всех папок и синхронизирует следующую в списке (используя функцию A).
  • Крон, который запускает процесс весь день. NB. Для синхронизации каждой папки требуется не менее 30 минут, а в неделю - 200 папок.

Теперь мне нужно реализовать маршрут, который запустит синхронизацию для одной точной папки (чтобы я мог ускорить процесс для определенных клиентов, когда им нужны их данные).

Итак, у меня есть маршрут, подобный следующему:

/**
 * @Route("/dropbox/scan/{id}", name="dropbox.scan.id")
 */
public function scanDropboxAction($id) {

    $response = new Response();
    $response->setStatusCode(200);
    $process = new Process('php [PATH-TO-MY-CONSOLE] app:sync-with-dropbox-for-id '.$id.' > /dev/null 2>&1 &');
    $process->start();
    return $response;
}

Я вызываю этот URL с помощью AJAX со своей страницы, где я перечисляю статус всей синхронизации. Но я хотел бы получить HTTP-ответ до , когда команда завершится (так как команда завершится минимум через 30 минут) ..

Я нашел много тем об этом, но ни одна из них не работала до сих пор для symfony4. У тебя есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...