Php 如何在Symfony应用程序中像后台任务一样运行命令?

Php 如何在Symfony应用程序中像后台任务一样运行命令?,php,symfony,backgroundworker,background-process,symfony-2.8,Php,Symfony,Backgroundworker,Background Process,Symfony 2.8,我必须为我创建的控制台命令设置作业管理器。 console命令需要20-30分钟才能完成。 这个控制台命令正在向数据库写入多个查询,我们假设它不能缩短到更短的时间 我都是在Symfony2.8中创建的,但我是一个真正的新手。 所以我 我只需要像后台任务一样运行这个命令。不接触应用程序的前端。有人能帮我吗 啊,好的。这需要定期进行,但应用户/客户的要求 这在很大程度上取决于它需要做什么 只跑一次就一次?登录到服务器上,使用tmux或screen保持运行,即使您断开连接,然后运行命令(bin/con

我必须为我创建的控制台命令设置作业管理器。 console命令需要20-30分钟才能完成。 这个控制台命令正在向数据库写入多个查询,我们假设它不能缩短到更短的时间

我都是在Symfony2.8中创建的,但我是一个真正的新手。 所以我

我只需要像后台任务一样运行这个命令。不接触应用程序的前端。有人能帮我吗


啊,好的。这需要定期进行,但应用户/客户的要求

这在很大程度上取决于它需要做什么

只跑一次就一次?登录到服务器上,使用tmux或screen保持运行,即使您断开连接,然后运行命令(
bin/console name of command

定期运行-在crontab中为需要运行它的用户输入一个条目

如果不知道脚本需要做什么,以及需要多长时间完成一次(如果有的话),就很难说接下来的步骤是什么

您可以通过以下方式实现php在后台运行:

$builder = new ProcessBuilder();
$builder->setPrefix('/usr/bin/php'); // put your php executable here
$cmd = $builder->setArguments(['/full/path/to/php/file/you/want/to/run.php', 'argumentOne', 'argumentTwo'])
      ->getProcess()
      ->getCommandLine();

$process = new Process($cmd . '  > /dev/null 2>&1 &'); // async trick here
$process->run();

对不起,问题本身没有提到。这需要定期进行,但应用户/客户端的请求,从另一台服务器进行。我们有两台服务器。一个包含CMS,第二个是前端。从CMS服务器,他们想调用我创建的控制台命令。更清楚吗?@FortuneSoldier命令是在CMS中实现的还是在前端代码中实现的?你想从CMS或前端或两者调用命令吗?嘿@malarzm,我从dtcquebundle得到了这个。很快就要检查了。如果您想从CMS调用命令,请注意。在哪里执行命令代码:在前端代码库中还是在cms代码库中?