首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java调度与SQL调度

Java调度与SQL调度
EN

Stack Overflow用户
提问于 2011-11-15 12:14:59
回答 2查看 1.2K关注 0票数 0

以下是我的要求:

将日期插入到包含每个记录的db表中。在该颗粒物日期之前两周,应将另一份记录输入另一张表格。

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

  • 做这件事的最佳方法是什么?
  • 对此任务使用SQL调度作业和Java调度有什么优缺点?
EN

回答 2

Stack Overflow用户

发布于 2011-11-15 12:23:31

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

我想说的是,用最好的工具来做这份工作。让数据库使用它所提供的任何功能来处理的东西通常是很好的。例如,一个日志表保存另一个表中记录状态更新的“快照”,这是我通常希望有一个触发器的东西,这是我的应用程序的职责。

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

这两种方法似乎都是有效的。想想是什么引起了最少的工作和忧虑。如果是用Java完成的,则需要确保进程正在运行或调度。这是某种外在的依赖。如果它在数据库中,那么只要DB启动,您就可以确保完成该工作。

票数 2
EN

Stack Overflow用户

发布于 2011-11-15 12:21:43

首先,如果您想用Java进行操作,您可以使用计时进行简单的基本重复工作,或者使用石英进行更高级的工作。

就我个人而言,我还认为最好让同一个实体(应用程序)处理所有相关的数据库操作。换句话说,如果您的Java应用程序正在读/写数据库,那么它应该是一致的,并且还应该处理预定的读/写。另外,通过这种方式,您可以更容易地同步您的操作,比如,如果您想确保调度的作业已经运行、已经启动、已经完成,那么如果所有的操作都是用Java完成的,那么要比使用不同的进程(比如SQL Scheduler)来完成任务要容易得多。

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

https://stackoverflow.com/questions/8136175

复制
相关文章

相似问题

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