Java调度与SQL调度

标签 java sql scheduling schedule

这是我的要求:

a date is inserted in to a db table with each record. Two weeks before that particulate date, a separate record should be entered to a different table.

我最初的解决方案是建立一个 SQL 调度作业,但我的客户坚持通过 java 处理它。

  • 最好的方法是什么?
  • 使用 SQL 调度作业和 Java 调度来执行此任务有何优缺点?

最佳答案

问自己一个问题:这件作品属于哪个领域?如果数据完整性需要它,那么显然是 DBMS 的问题,最好在那里处理。如果它是业务领域而不是数据的一部分,或者可能需要 DBMS 不可用或自然的信息或处理,那么最好将其放在外部。

我想说,使用最好的工具来完成工作。让数据库使用它提供的任何功能来处理内容通常是很好的。例如,我通常喜欢在另一个表中保留记录状态更新“快照”的日志表有一个触发器,从而将这一责任从我的应用程序手中解放出来。

但这几乎在任何 DBMS 中都可用。其他数据库可能无法提供您所需的作业调度功能。如果可以想象有一天您将切换到不同的 DBMS,那么无论如何您都将被迫使用 Java 进行操作。这就是 Java 方法的优点:您可以获得独立于数据库的功能。如果您使用纯 JDBC 和标准 SQL 查询,那么您就拥有了一个完全可移植的解决方案。

这两种方法似乎都有效。考虑一下什么会引起最少的工作和担忧。如果它是用 Java 完成的,您需要确保该进程正在运行或已计划。这是一些外部依赖。如果它在数据库中,那么只要数据库启动,您就可以确保工作已完成。

关于Java调度与SQL调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8136175/

相关文章:

java - Flowable 中的所有项目都发出后,如何发出最终项目

java - 带有 Java 7 的 OSX 10.8.2 Mt Lion 上的 IntelliJ 12

sql - MySQL 列值透视

MySQL - 如何选择最小/最大日期差异超过 3 年的 id

java - 推送到达时将 cordova 应用程序带到前台

java - 如何在android中开始和停止多个文件的下载

SQL Server,在表中查找不同的组

java - 在java中安排电子邮件通知警报

c# - 间隔调度算法 : Earliest Finish Time

c - C 代码中的先来先服务多处理器(6 个处理器)调度程序