首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在到期日期后自动删除数据库行

在到期日期后自动删除数据库行
EN

Stack Overflow用户
提问于 2016-04-29 18:54:56
回答 4查看 4.7K关注 0票数 4

我正在开发一个基于Spring、Hibernate和Postgresql的分类广告网站。这些分类广告的发布期从2周到6个月不等。如何实现自动删除过期分类广告的解决方案?最好是从java层删除它们,还是使用Postgresql调度器?

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2016-04-29 19:15:40

Spring为调度作业提供了支持。使用@Scheduled注释可以做到这一点。你可以看看这个网站

http://howtodoinjava.com/spring/spring-core/4-ways-to-schedule-tasks-in-spring-3-scheduled-example/

即每分钟安排一项任务

代码语言:javascript
复制
    @Override
    @Scheduled(cron = "1 * * * * ?")
    public final void updateTest() throws IOException {
        //do something here
    }

我更喜欢将它放在Spring中(在web应用程序中),因为如果我迁移数据库或操作系统,那么我必须重写它。

希望能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2016-04-29 19:04:44

这是UNIX解决方案吗?如果是这样的话,可以使用CRON调用一个PostgreSQL .sql脚本,该脚本会在您认为必要的时间内删除它们。

票数 0
EN

Stack Overflow用户

发布于 2016-04-29 19:14:26

由于您已经在使用Spring,因此可以使用spring调度器运行必要的DB查询来删除行。

代码语言:javascript
复制
<task:scheduled-tasks>
    <task:scheduled ref="deleteJob" method="run" cron="0 * * * * *"/>
</task:scheduled-tasks>
<bean id="deleteJob" class="..."/>

deleteJob是一个简单的Spring bean,带有run()方法,它将基于CRON执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36936490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档