java - 关于J2EE项目中的定时任务
怪我咯
怪我咯 2017-04-18 09:07:24
[Java讨论组]

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
天蓬老师

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

ringa_lee

配置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(), 来定时(比如每分钟)检查目标任务是否需要执行。

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号