我是Symfony和Doctrine的新手。
我有一个项目,我需要在Symfony服务中有一个方法,每当保存在该数据库表中的dateTime对象"过期"(达到某个(动态(年龄(时,就可以使用数据库中的数据调用该方法。
由于我刚刚开始,我还没有任何代码。我需要的是一个起点,让我朝着正确的方向前进,因为生命周期回调和学说事件侦听器/调度器结构似乎都无法解决这项任务。
我在这里错过了一些重要的东西,还是它可能只是我的问题的一个完全错误的开始,实际上无法通过教义本身来解决?
我想到的是一个cron-job式的结构,但这种实现并不像需要的那样动态,而是受特定时间框架的约束,这些时间框架可能反应不够,甚至可能极大地降低不同情况下的性能。
答对了你的问题:你想要在记录的日期时间到期时执行的东西。
主要问题是您必须基于数据库事件调用 PHP,这不是直截了当的......
一种可能的解决方案是定期执行的Symfony命令(使用cron(,然后选择过期的实体并执行所需的操作。
据我所知,教义确实无法以描述的方式完成这项任务。当然,如果没有外部操作触发查找,数据库无法对它保存的记录的一部分做出反应。
所以我可能会选择一个名为 at
的 shell 程序。
它实际上就像我(和katon.abel(提到的。它能够输入一次 crons,然后根据提供的时间执行(然后我不需要保存在数据库中,只需将其传递给 at
(。
这样,我可以通过symfony轻松创建crons,通过doctrine保存所需的数据,并通过at
触发的脚本调用回调方法。