扫码关注官方订阅号
在一个项目中,定时执行某一个任务,执行任务的时间可以从数据库中获取,这个怎么解决.
走同样的路,发现不同的人生
项目中quartz用的很多,可以书写cron表达式,注册job,一般为周期性。
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 urlorg.quartz.dataSource.NAME.java.naming.factory.initial = 使用的JNDI InitialContextFactory类名。org.quartz.dataSource.NAME.java.naming.provider.url = 连接JNDI的URLorg.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中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
项目中
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(), 来定时(比如每分钟)检查目标任务是否需要执行。
如果需要执行则执行,不需要则直接返回。