首页 > 关于J2EE项目中的定时任务

关于J2EE项目中的定时任务

在一个项目中,定时执行某一个任务,执行任务的时间可以从数据库中获取,这个怎么解决.


项目中quartz用的很多,可以书写cron表达式,注册job,一般为周期性。


配置quartz数据源的三种方式

如果是使用了JDBC JobStore或JobStoreCMT获得持久的Job时,就要配置相关的数据源了。
方式一:使用quartz.properties文件,这时只需要在property文件中增加如下的一些属性就ok了。
org.quartz.dataSource.NAME.driver = 数据库驱动(requried)
org.quartz.dataSource.NAME.URL = 连接数据库的url (requried)
org.quartz.dataSource.NAME.user = 连接的数据库的用户名(not requried)
org.quartz.dataSource.NAME.password =连接的数据库的密码(not requried)
org.quartz.dataSource.NAME.maxConnections = 连接池中最大连接数(not requried)
org.quartz.dataSource.NAME.validationQuery = sql查询语句(not requried)
注:org.quartz.dataSource.NAME中的NAME是自己随便定义的一个数据源的名字。
方式二:使用自定义的ConnectionProvider配置数据源:
自定义一个ConnectionProvider类,并在quartz.properties文件中依据ConnectionProvider类配置它。
org.quartz.dataSource.myConProvider(数据源名).connectionProvider.class = XXXXX(自定义的ConnectionProvider)。
方式三:使用应用服务器中DataSource的属性
org.quartz.dataSource.NAME.jndiURL = dataSource的JNDI url
org.quartz.dataSource.NAME.java.naming.factory.initial = 使用的JNDI InitialContextFactory类名。
org.quartz.dataSource.NAME.java.naming.provider.url = 连接JNDI的URL
org.quartz.dataSource.NAME.java.naming.security.principal =连接JNDI的用户名
org.quartz.dataSource.NAME.java.naming.security.credentials = 连接到JNDI的用户凭证
原文:http://blog.itpub.net/22682648/viewspace-616598/


我先扔个最简单的方法.

使用Executors.newScheduledThreadPool(), 来定时(比如每分钟)检查目标任务是否需要执行。

如果需要执行则执行,不需要则直接返回。

【热门文章】
【热门文章】