繁体   English   中英

我如何每天检查数据库字段?

[英]How can I check database field every day?Cron job?

我正在用Java开发与数据库(Oracle或SQLite)连接的应用程序。 在数据库中,我存储合同。 合同的字段为access_date 我想每天检查一次此字段,如果某天access_date等于当前日期,则将合同标记为无效。 我该如何实施? 据我所知,在PHP中有用于此类任务的cron作业,但是java或java ee呢? 我该怎么办?谢谢!

您可以通过两种方式执行此操作:

  1. 您可以使用Cron在特定时间(在您的情况下,每天一次)调用Java程序。
  2. 如果您的Java程序被设计为作为服务/守护程序运行(始终在后台运行),则可以使用作业调度程序(例如Quartz Scheduler)在特定时间调用某个检查功能。
  3. 作为2.的扩展,可以使用ScheduledExecutorService

使用TimerTask或ScheduledTask。 这是一个很好的教程:

http://www.ibm.com/developerworks/java/library/j-schedule/index.html

无需保存合同的无效属性,而不必每天都针对sysdate进行检查,我可以使用谓词(例如“ access_date <trunc(sysdate)”)来查找过期的合同,以及一个表达式,例如:

case when access_date < trunc(sysdate) then 'N' else 'Y' end

...显示合同是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM