我有一个长期运行的任务,我已将其作为一个进程合并到我的symfony项目中。这就是我称之为过程的方式
$rootDir = $this->get('kernel')->getRootDir();
$adk_process = new Process(
'php ../bin/console app:adkaction ' . $numcampaigns . ', ' . $timezone . ',' . $depdate);
$adk_process->setWorkingDirectory($rootDir);
$adk_process->setOptions(['suppress_errors' => false]);
$adk_process->setTimeout(null);
$adk_process->start();
while ($adk_process->isRunning()) {
$currprogress = $adk_process->getIncrementalOutput();
return $this->render('BackEnd/user.html.twig',[
'form'=>$form->createView(),
'currprogress' => $currprogress
]);
}
我的进程当前没有任何输出(它正在解析xml文件并将数据推送到db)。完成后,当currprogress变量填充进度条时,应将其推入我的.twig模板。
我需要显示文件解析的进度(即处理了多少项,因为它可以达到100k行,并且该过程可以运行2-3个小时)。
目前我无法从我的流程中获取增量输出以将其推送到我的temaplte。什么是最好的方法!