设置一些触发器,使用 Spring 引导从数据库中删除早于几分钟的行



我在 Spring Boot 上有一个带有 Cassandra DB 的 Java 应用程序,我正在向 DB Person 实体写入。 DB中的每一行人必须在5分钟前删除,所以概念很简单:

将某人添加到带有时间戳的数据库中,并且必须在正好 5 分钟后删除此人。

想到的唯一想法是设置 Spring 调度程序,它每秒运行一次,并检查每一行是否过期,如果过期,则将其删除。

由于您使用Cassandra作为数据库,因此可以利用Cassandra TTL功能。

在数据插入期间,您必须以秒为单位指定"ttl"值。"ttl"值是数据的生存时间值。在该特定时间之后,数据将自动删除。

cql 中的 TTL 语法就像

INSERT INTO person (name, age) VALUES ('ExampleName', '39') USING TTL 300;

而不是每秒运行一个 Spring 调度程序,你可以轻松地在每条记录后创建一个定时器任务,并使用 TimerTask(Core java(,你创建一个将在设定的时间间隔后执行的任务并删除记录。 PFB一些有用的链接和示例:

https://www.baeldung.com/java-timer-and-timertask

最新更新