我有一个运行很长时间的symfony程序,可以定期使用
查询实体 $msg = $this->entityManager->getRepository('App\Entity\Message')->findOneBy([
'id' => $id
]);
我收到消息,一切正常。两分钟后,同一条消息被另一Symfony进程更改并保留。现在5分钟后,我再次查询相同的味精ID:
$msg = $this->entityManager->getRepository('App\Entity\Message')->findOneBy([
'id' => $id
]);
不幸的是
我再次收到原始消息,可能是因为它被缓存了,即Symfony / Doctrine没有检测到其他进程已经修改了数据库
我当然可以
$this->entityManager->refresh($msg);
,但这会在数据库上造成很多不必要的负载。
有没有更好的方法,例如设置缓存的一般timeToLive吗?甚至更好:Symfony是否检测到缓存何时变脏?