Использование:
У меня сейчас есть эта функция:
- Функция 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. У тебя есть идеи?