我正在为我的公司绘制一个系统的设计,以完成日常业务功能。它将由一个带有Pl/SQL包的Oracle 10g数据库和一个基于Java的web应用程序组成。所有这些都在Solaris10服务器上运行。除了从web界面处理事务之外,计划任务还需要在数据库上运行,以运行计算和加载数据等。
这是对遗留系统的重新设计,该系统目前通过过多的cron作业控制一切。考虑到重新设计它的任务,你会以不同的方式去做吗?我知道Oracle有自己的任务调度程序,但DBA认为他会重新考虑使用它,因为如果数据库由于某种原因停机或脱机,它就不能发送警报或记录任何类型的错误。cron作业当前能够在其中一个任务失败时发送SMS消息或电子邮件。另一种选择是让web应用程序以某种方式完成这项工作。
你有什么建议?
发布于 2010-01-07 04:19:40
是否所有计划任务都与数据库相关?如果是这样,那么您的数据库管理员的反对意见是无关紧要的:您不希望在数据库因计划外停机而离线时运行作业,并且如果数据库因计划外原因而关闭,数据库管理员应该准备一些东西来警告他们,而不是依赖于失败的cron作业发出的信号。
如果您的作业在架构的其他部分运行,而不接触数据库,那么外部调度器当然是有意义的。有很多商业产品,但如果你想使用自由/开源软件,那么你可能应该看看Quartz。
发布于 2010-01-07 05:34:33
我使用过cron和Oracle作业调度器--我总是发现它更可靠,更易于使用和理解cron。它还可以做更多的事情(与整个操作系统接口,而不仅仅是Oracle)。我会选择cron。
发布于 2010-01-08 10:16:33
我对计划作业的经验法则是一致性。因为您已经有了很多基础设施,比如警报,所以我还是使用cron。
https://stackoverflow.com/questions/2015784
复制相似问题