这是一些简单的步骤,可帮助您使用Groovy在MySQL数据库上完全入门Quartz Scheduler。 以下脚本可让您使用外部文件快速尝试不同的Quartz配置设置。

第一步是使用表设置数据库。 假设您已经安装了MySQL,并且有权创建数据库和表。

bash> mysql -u root -psql> create database quartz2;
sql> create user 'quartz2'@'localhost' identified by 'quartz2123';
sql> grant all privileges on quartz2.* to 'quartz2'@'localhost';
sql> exit;bash> mysql -u root -p quartz2 < /path/to/quartz-dist/docs/dbTables/tables_mysql.sql

可以从Quartz发行版下载中找到tables_mysql.sql ,或直接从其源代码中找到 。 数据库启动后,您需要编写一些代码来启动Quartz Scheduler。 这是一个简单的Groovy脚本quartzServer.groovy ,它将作为小型调度程序服务器运行。

// Run Quartz Scheduler as a server
// Author: Author: Zemian Deng, Date: 2012-12-15_16:46:09
@GrabConfig(systemClassLoader=true)
@Grab('mysql:mysql-connector-java:5.1.22')
@Grab('org.slf4j:slf4j-simple:1.7.1')
@Grab('org.quartz-scheduler:quartz:2.1.6')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*config = args.length > 0 ? args[0] : 'quartz.properties'
scheduler = new StdSchedulerFactory(config).getScheduler()
scheduler.start()// Register shutdown
addShutdownHook {scheduler.shutdown()
}// Quartz has its own thread, so now put this script thread to sleep until
// user hit CTRL+C
while (!scheduler.isShutdown()) {Thread.sleep(Long.MAX_VALUE)
}

现在,您只需要一个如下所示的配置文件quartz-mysql.properties

# Main Quartz configuration
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = DatabaseScheduler
org.quartz.scheduler.instanceId = NON_CLUSTERED
org.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = quartzDataSource
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5# JobStore: JDBC jobStoreTX
org.quartz.dataSource.quartzDataSource.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.quartzDataSource.URL = jdbc:mysql://localhost:3306/quartz2
org.quartz.dataSource.quartzDataSource.user = quartz2
org.quartz.dataSource.quartzDataSource.password = quartz2123
org.quartz.dataSource.quartzDataSource.maxConnections = 8

您可以照常运行Groovy脚本

bash> groovy quartzServer.groovy quartz-mysql.properties
Dec 15, 2012 6:20:26 PM com.mchange.v2.log.MLog INFO: MLog clients using java 1.4+ standard logging.
Dec 15, 2012 6:20:27 PM com.mchange.v2.c3p0.C3P0Registry banner
INFO: Initializing c3p0-0.9.1.1 [built 15-March-2007 01:32:31; debug? true; trace:10]
[main] INFO org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor
[main] INFO org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
[main] INFO org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.1.6 created.
[main] INFO org.quartz.core.QuartzScheduler - JobFactory set to: org.quartz.simpl.SimpleJobFactory@1a40247
[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Using thread monitor-based data access locking (synchronization).
[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - JobStoreTX initialized.
[main] INFO org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.1.6) 'DatabaseScheduler' with instanceId 'NON_CLUSTERED'Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.NOT STARTED.Currently in standby mode.Number of jobs executed: 0Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 5 threads.Using job-store 'org.quartz.impl.jdbcjobstore.JobStoreTX' - which supports persistence. and is not clustered.[main] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'DatabaseScheduler' initialized from the specified file : 'quartz-mysql.properties' from the class resource path.
[main] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.1.6
Dec 15, 2012 6:20:27 PM com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
INFO: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts
-> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge16k8r18mveoq1iqtotg|1486306, debugUnreturnedConnectionStackTraces -> fals
e, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge16k8r18mveoq1iqtotg|1486306, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql://localhost:3306/quartz2, lastAcquisitionFailureDefaultUser -> null, maxAdministrativeTaskTime -> 0
, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 8, maxStatements -> 0, maxStatementsPerConnection -> 120, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, pref
erredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Freed 0 triggers from 'acquired' / 'blocked' state.[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Recovering 0 jobs that were in-progress at the time of the last shut-down.
[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Recovery complete.
[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Removed 0 'complete' triggers.
[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Removed 0 stale fired job entries.
[main] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED started.... CTRL+C
[Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED shutting down.
[Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED paused.
[Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED shutdown complete.

以上就是上述设置的完整过程。 继续并使用不同的配置。 阅读http://quartz-scheduler.org/documentation/quartz-2.1.x/configuration以获得更多详细信息。

在这里,我将发布一些更简单的配置,使您开始使用常用的配置集:

MySQL群集启用的配置。 这样,您可以启动一个或多个Shell终端,并使用相同的配置运行quartzServer.groovy不同实例。 所有的石英调度程序实例都应将它们自己群集起来并平均分配您的作业。

# Main Quartz configuration
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = DatabaseClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = quartzDataSource
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5# JobStore: JDBC jobStoreTX
org.quartz.dataSource.quartzDataSource.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.quartzDataSource.URL = jdbc:mysql://localhost:3306/quartz2
org.quartz.dataSource.quartzDataSource.user = quartz2
org.quartz.dataSource.quartzDataSource.password = quartz2123
org.quartz.dataSource.quartzDataSource.maxConnections = 8

这是一个简单的内存调度程序的另一个配置集。

# Main Quartz configuration
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = InMemoryScheduler
org.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5

现在,如果您需要对Quartz进行更高级的UI管理,请尝试使用MySchedule 。

调度愉快!

参考: A程序员杂志博客上的JCG合作伙伴 Zemian Deng从MySQL数据库上的Quartz Scheduler入门开始 。

翻译自: https://www.javacodegeeks.com/2012/12/getting-started-with-quartz-scheduler-on-mysql-database.html

在MySQL数据库上使用Quartz Scheduler入门相关推荐

  1. mysql管理数据 并上传至云端_怎样将MySQL数据库上传到服务器

    首先,需要将本地的数据库导出来,作为一个数据文件,以备稍后上传到服务器用,在本地登陆phpmyadmin控制面板: 登陆成功后,在左侧选择需要操作的数据库: 选择后,页面会自动刷新,然后再在右边点击[ ...

  2. MySQL数据库 学习笔记 零基础入门 面试 整理

    一.MySQL基础篇 1. 数据库技术的基本概念和方法 1.1 数据库基本概念 1] 数据 数据(Data)指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的,不仅仅指狭义上的数字,而是 ...

  3. mysql数据库上传ftp服务器中_备份部分mysql表并上传至指定ftp服务器目录中

    防伪码:忘情公子著 前几天领导安排了一个任务,让写一个脚本备份某mysql数据库中的部分表,并要将备份好的文件上传至某ftp服务器中,于是就有了以下的脚本 #!/bin/bash #Filename: ...

  4. 怎么把mysql 数据库上传到主机屋提供的空间里去?_2013.8,初次接触PHP+Mysql,在主机屋建立简单的blog的流水账...

    在威客看到关于--android应用上传信息到网站 开发设计需求,联想到的. ios查找iphone的功能:android监视用户状态的非法功能等.合法化的话貌似可以用于 未成年人.老年人.及无--能 ...

  5. MYSQL数据库详解-从零入门,一篇正式入门

    MYSQL 1,数据库相关概念 1.1 数据库 1.2 数据库管理系统 1.3 常见的数据库管理系统 1.4 SQL 2,MySQL 2.1 MySQL安装 2.1.1 下载 2.1.2 安装(解压) ...

  6. MySQL数据库 sql语句的简单入门学习

    初步学习MySQL后的一些总结 MySQL简介 MySQL在过去由于性能高.成本低.可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中.随着MySQL的不断成熟, ...

  7. 远程服务器传数据库,怎样把本机的mysql数据库上传到远程主机上

    满意答案 z515xvt170 2014.08.09 采纳率:56%    等级:9 已帮助:214人 方法1: 先将本地的数据备份出来(都是直接在cmd或shell命令窗口下执行): mysqldu ...

  8. 监控mysql数据库里的数据_有谁知道哪种软件可以监控mysql数据库上执行的数据脚本吗?...

    LOG4j可以配置 log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4 ...

  9. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

最新文章

  1. 下轮牛市高峰可能在2020年,以太坊是关键
  2. 1000+ 常用 Python 库一览
  3. amcharts应用
  4. IIS的Windows集成身份验证总结
  5. 如何写一份好的求职简历
  6. java图书进存销系统_【有源码】图书进销存系统
  7. 关于XIFF开发IM的一些想法
  8. jsf UIComponent组件接口详细注释说明(jsf1.1规范)
  9. Android Studio 工具窗口浮动与布局恢复【申明:来源于网络】
  10. 一文详解自然语言处理任务之共指消解
  11. MapReduce-实践1
  12. 黑龙江全教计算机科技有限公司,50米×8往返跑是个技术活,技巧教学很重要
  13. 谷歌浏览器一直无法上网,其他浏览器可以正常上网
  14. 程序员出海创富的机会在哪里?三位专家给出具体建议
  15. 又拍网架构中的数据库分库设计
  16. java lockmodetype_java-org.hibernate.lockmode.pessimistic_write的行为
  17. 来了 来了 他真的来了
  18. SQL 汉字转拼音函数(转)+将表中汉字转拼音
  19. css3僵尸走路动画js特效
  20. 各版本最新的Visual C++可再发行组件包(Redistributable Package)下载和合集

热门文章

  1. 给数据库表字段设置默认值
  2. 分类器评估参数——准确度和精度的区别(足球荔枝)
  3. DFS应用——查找强分支
  4. jpa映射json_如何使用JPA和Hibernate映射JSON集合
  5. 使用Speedment 3.0.17及更高版本简化了事务
  6. 做好计划事半功倍论文_Picocli 2.0:事半功倍
  7. docker和java容器_使用Docker容器和Java EE进行持续交付
  8. 博科光纤交换机java_带有光纤的可扩展,健壮和标准的Java Web服务
  9. java oauth2.0_教程:如何实现Java OAuth 2.0以使用GitHub和Google登录
  10. 数据库 ogm_带有Hibernate OGM的NoSQL –第二部分:查询数据