2

我正在使用 Spring 和 Hibernate 框架从事 Java 项目。使用的数据库是Oracle,应用服务器是JBoss 4,操作系统是Unix。

我必须编写一个逻辑来删除所有超过 180 天的表中的数据。在特定表中有一个日期列,我必须使用它来确定它是否超过 180 天。如果是,我将不得不删除该表中的所有行以及任何其他表中的任何关联行。我可以使用休眠从表中删除此类数据。

此功能将被安排,即删除逻辑将在某个周期性时间调用,可能是每天下午 3:00,客户将很快通知我的确切时间。此逻辑必须与我通常根据实际情况制作的应用程序战争分开项目源代码。

我在编写将删除数据的持久性相关代码时没有任何问题,但我对如何将这个逻辑单独放在 JBoss 中感到困惑。我应该将代码制作成 jar 并将其放入 JBoss 中吗?以及如何调用删除逻辑?我是否需要配置/编写一些可以完成这项工作的调度程序?

有人可以帮我吗?

4

2 回答 2

1

看看石英。它是一个相对容易使用的 Java 调度程序。您应该能够非常快速地启动并运行它。

于 2012-09-10T18:42:11.447 回答
0

Java/Hibernate 不适合“natch”样式处理:当您尝试使用 Hibernate 执行“事务”更新之外的更多操作时,Hibernate 会出现严重的性能和复杂性问题。

最好的方法是编写一个 SQL 脚本来完成这项工作,然后使用 O/S 任务调度程序安排其执行:cronif *nix,atif windows。您将能够在很短的时间内完成您的任务,并且它将胜过任何 java/hibernate 方法,特别是因为您可以控制锁定、提交等。

我见过的每个生产安装都会做这种事情,而且他们都是通过cron.

你几乎可以用任何语言做任何事情,但仅仅因为你可以用一种语言/技术做某事,并不意味着这是一个好主意。

于 2012-09-10T18:41:32.623 回答