将symfony4进程作为后台任务运行(发送http响应后)

时间:2019-06-28 15:07:51

标签: php asynchronous process symfony4

使用:

  • Symfony 4.2
  • PHP 7.0

我目前有此功能:

  • 功能A:将保管箱存储库与我的数据库同步的功能
  • 一个过程,该过程将列出所有文件夹并同步列表中的下一个文件夹(使用功能A)。
  • 整日启动该程序的cron。 注意:每个文件夹至少需要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;
}

我从页面上列出所有同步状态的页面使用AJAX调用此URL。但是我想在命令终止之前之前收到HTTP响应(因为命令将在30分钟后终止)。

我找到了很多关于这个的话题,但是到目前为止,对于symfony4来说,没有一个起作用。你有什么主意吗?

0 个答案:

没有答案