Php 发送响应错误会话后的Symfony后台活动

Php 发送响应错误会话后的Symfony后台活动,php,symfony,redis,Php,Symfony,Redis,我正在使用Redis进行会话 我有一些控制器,我希望在向用户发送回复后更新后台数据库 因此,我编写了如下代码: class GetCatController extends AbstractController { public function getCatController(LoggerInterface $logger, ManagerRegistry $doctrine, SessionInterface $session, ValidatorInterface $valida

我正在使用Redis进行会话

我有一些控制器,我希望在向用户发送回复后更新后台数据库

因此,我编写了如下代码:

class GetCatController extends AbstractController
{
    public function getCatController(LoggerInterface $logger, ManagerRegistry $doctrine, SessionInterface $session, ValidatorInterface $validator)
    {
       [...]
       $replyToSend =  new JsonResponse($reply, 200);
       $replyToSend->send();
       
      //My back ground activity like to do some query on the db.
        [...]

        return null;
    }
但是我对会议有一些问题


有没有更好的方法在回复用户之前创建并运行后台活动发送?

有两种方法可以做到这一点

如果您在PHP fpm(而不是mod_PHP)下运行PHP,您可以在Symfony pre-4.4中调度并捕获一个事件,该事件称为
PostResponseEvent
TerminateEvent
来自4.4/5.0)

更好的选择可能是与你一起。在这里,您将创建一个消息对象,其中包含执行任务所需的所有信息,并将其发送到后台队列(Redis支持作为队列)。然后,工作进程使用该消息并执行该任务