{"id":5799,"date":"2012-12-18T19:00:48","date_gmt":"2012-12-18T17:00:48","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=5799"},"modified":"2012-12-17T15:56:09","modified_gmt":"2012-12-17T13:56:09","slug":"getting-started-with-quartz-scheduler-on-mysql-database","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html","title":{"rendered":"Getting started with Quartz Scheduler on MySQL database"},"content":{"rendered":"<p>Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly experiment different Quartz configuration settings using an external file.<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\nFirst step is to setup the database with tables. Assuming you already have installed MySQL and have access to create database and tables.<\/p>\n<pre class=\" brush:java\">bash&gt; mysql -u root -p\r\n\r\nsql&gt; create database quartz2;\r\nsql&gt; create user 'quartz2'@'localhost' identified by 'quartz2123';\r\nsql&gt; grant all privileges on quartz2.* to 'quartz2'@'localhost';\r\nsql&gt; exit;\r\n\r\nbash&gt; mysql -u root -p quartz2 &lt; \/path\/to\/quartz-dist\/docs\/dbTables\/tables_mysql.sql<\/pre>\n<p>The<code> tables_mysql.sql<\/code> can be found from Quartz distribution download, or directly from their source<a href=\"http:\/\/svn.terracotta.org\/svn\/quartz\/tags\/quartz-2.1.6\/docs\/dbTables\"> here<\/a>. Once the database is up, you need to write some code to start up the Quartz Scheduler. Here is a simply Groovy script<code> quartzServer.groovy<\/code> that will run as a tiny scheduler server.<\/p>\n<pre class=\" brush:java\">\/\/ Run Quartz Scheduler as a server\r\n\/\/ Author: Author: Zemian Deng, Date: 2012-12-15_16:46:09\r\n@GrabConfig(systemClassLoader=true)\r\n@Grab('mysql:mysql-connector-java:5.1.22')\r\n@Grab('org.slf4j:slf4j-simple:1.7.1')\r\n@Grab('org.quartz-scheduler:quartz:2.1.6')\r\nimport org.quartz.*\r\nimport org.quartz.impl.*\r\nimport org.quartz.jobs.*\r\n\r\nconfig = args.length &gt; 0 ? args[0] : 'quartz.properties'\r\nscheduler = new StdSchedulerFactory(config).getScheduler()\r\nscheduler.start()\r\n\r\n\/\/ Register shutdown\r\naddShutdownHook {\r\n  scheduler.shutdown()\r\n}\r\n\r\n\/\/ Quartz has its own thread, so now put this script thread to sleep until\r\n\/\/ user hit CTRL+C\r\nwhile (!scheduler.isShutdown()) {\r\n Thread.sleep(Long.MAX_VALUE)\r\n}<\/pre>\n<p>And now you just need a config file<code> quartz-mysql.properties<\/code> that looks like this:<\/p>\n<pre class=\" brush:java\"># Main Quartz configuration\r\norg.quartz.scheduler.skipUpdateCheck = true\r\norg.quartz.scheduler.instanceName = DatabaseScheduler\r\norg.quartz.scheduler.instanceId = NON_CLUSTERED\r\norg.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory\r\norg.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX\r\norg.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate\r\norg.quartz.jobStore.dataSource = quartzDataSource\r\norg.quartz.jobStore.tablePrefix = QRTZ_\r\norg.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool\r\norg.quartz.threadPool.threadCount = 5\r\n\r\n# JobStore: JDBC jobStoreTX\r\norg.quartz.dataSource.quartzDataSource.driver = com.mysql.jdbc.Driver\r\norg.quartz.dataSource.quartzDataSource.URL = jdbc:mysql:\/\/localhost:3306\/quartz2\r\norg.quartz.dataSource.quartzDataSource.user = quartz2\r\norg.quartz.dataSource.quartzDataSource.password = quartz2123\r\norg.quartz.dataSource.quartzDataSource.maxConnections = 8<\/pre>\n<p>You can run the Groovy script as usual<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<pre class=\" brush:java\">bash&gt; groovy quartzServer.groovy quartz-mysql.properties\r\nDec 15, 2012 6:20:26 PM com.mchange.v2.log.MLog \r\n\r\nINFO: MLog clients using java 1.4+ standard logging.\r\nDec 15, 2012 6:20:27 PM com.mchange.v2.c3p0.C3P0Registry banner\r\nINFO: Initializing c3p0-0.9.1.1 [built 15-March-2007 01:32:31; debug? true; trace:10]\r\n[main] INFO org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor\r\n[main] INFO org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl\r\n[main] INFO org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.1.6 created.\r\n[main] INFO org.quartz.core.QuartzScheduler - JobFactory set to: org.quartz.simpl.SimpleJobFactory@1a40247\r\n[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Using thread monitor-based data access locking (synchronization).\r\n[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - JobStoreTX initialized.\r\n[main] INFO org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.1.6) 'DatabaseScheduler' with instanceId 'NON_CLUSTERED'\r\n  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.\r\n  NOT STARTED.\r\n  Currently in standby mode.\r\n  Number of jobs executed: 0\r\n  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 5 threads.\r\n  Using job-store 'org.quartz.impl.jdbcjobstore.JobStoreTX' - which supports persistence. and is not clustered.\r\n\r\n[main] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'DatabaseScheduler' initialized from the specified file : 'quartz-mysql.properties' from the class resource path.\r\n[main] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.1.6\r\nDec 15, 2012 6:20:27 PM com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager\r\nINFO: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -&gt; 3, acquireRetryAttempts\r\n-&gt; 30, acquireRetryDelay -&gt; 1000, autoCommitOnClose -&gt; false, automaticTestTable -&gt; null, breakAfterAcquireFailure -&gt; false, checkoutTimeout -&gt; 0, connectionCustomizerClassName -&gt; null, connectionTesterClassName -&gt; com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -&gt; 1hge16k8r18mveoq1iqtotg|1486306, debugUnreturnedConnectionStackTraces -&gt; fals\r\ne, description -&gt; null, driverClass -&gt; com.mysql.jdbc.Driver, factoryClassLocation -&gt; null, forceIgnoreUnresolvedTransactions -&gt; false, identityToken -&gt; 1hge16k8r18mveoq1iqtotg|1486306, idleConnectionTestPeriod -&gt; 0, initialPoolSize -&gt; 3, jdbcUrl -&gt; jdbc:mysql:\/\/localhost:3306\/quartz2, lastAcquisitionFailureDefaultUser -&gt; null, maxAdministrativeTaskTime -&gt; 0\r\n, maxConnectionAge -&gt; 0, maxIdleTime -&gt; 0, maxIdleTimeExcessConnections -&gt; 0, maxPoolSize -&gt; 8, maxStatements -&gt; 0, maxStatementsPerConnection -&gt; 120, minPoolSize -&gt; 1, numHelperThreads -&gt; 3, numThreadsAwaitingCheckoutDefaultUser -&gt; 0, pref\r\nerredTestQuery -&gt; null, properties -&gt; {user=******, password=******}, propertyCycle -&gt; 0, testConnectionOnCheckin -&gt; false, testConnectionOnCheckout -&gt; false, unreturnedConnectionTimeout -&gt; 0, usesTraditionalReflectiveProxies -&gt; false ]\r\n[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.\r\n[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Recovery complete.\r\n[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Removed 0 'complete' triggers.\r\n[main] INFO org.quartz.impl.jdbcjobstore.JobStoreTX - Removed 0 stale fired job entries.\r\n[main] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED started.\r\n\r\n... CTRL+C\r\n[Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED shutting down.\r\n[Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED paused.\r\n[Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler DatabaseScheduler_$_NON_CLUSTERED shutdown complete.<\/pre>\n<p>That&#8217;s a full run of above setup. Go ahead and play with different config. Read<a href=\"http:\/\/quartz-scheduler.org\/documentation\/quartz-2.1.x\/configuration\/\"> http:\/\/quartz-scheduler.org\/documentation\/quartz-2.1.x\/configuration<\/a> for more details.<\/p>\n<p><strong>Here I will post couple more easy config that will get you started in a commonly used config set:<br \/>\n<\/strong><br \/>\nA MySQL cluster enabled configuration. With this, you can start one or more shell terminal and run different instance of <code>quartzServer.groovy<\/code> with the same config. All the quartz scheduler instances should cluster themselve and distribute your jobs evenly.<\/p>\n<pre class=\" brush:java\"># Main Quartz configuration\r\norg.quartz.scheduler.skipUpdateCheck = true\r\norg.quartz.scheduler.instanceName = DatabaseClusteredScheduler\r\norg.quartz.scheduler.instanceId = AUTO\r\norg.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory\r\norg.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX\r\norg.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate\r\norg.quartz.jobStore.dataSource = quartzDataSource\r\norg.quartz.jobStore.tablePrefix = QRTZ_\r\norg.quartz.jobStore.isClustered = true\r\norg.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool\r\norg.quartz.threadPool.threadCount = 5\r\n\r\n# JobStore: JDBC jobStoreTX\r\norg.quartz.dataSource.quartzDataSource.driver = com.mysql.jdbc.Driver\r\norg.quartz.dataSource.quartzDataSource.URL = jdbc:mysql:\/\/localhost:3306\/quartz2\r\norg.quartz.dataSource.quartzDataSource.user = quartz2\r\norg.quartz.dataSource.quartzDataSource.password = quartz2123\r\norg.quartz.dataSource.quartzDataSource.maxConnections = 8<\/pre>\n<p>Here is another config set for a simple in-memory scheduler.<\/p>\n<pre class=\" brush:java\"># Main Quartz configuration\r\norg.quartz.scheduler.skipUpdateCheck = true\r\norg.quartz.scheduler.instanceName = InMemoryScheduler\r\norg.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory\r\norg.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool\r\norg.quartz.threadPool.threadCount = 5<\/pre>\n<p>Now, if you need more fancy UI management of Quartz, give <a href=\"http:\/\/code.google.com\/p\/myschedule\">MySchedule<\/a> a try.<\/p>\n<p>Happy scheduling!<br \/>\n&nbsp;<\/p>\n<p><strong><em>Reference: <\/em><\/strong><a href=\"http:\/\/saltnlight5.blogspot.gr\/2012\/12\/getting-started-with-quartz-scheduler.html\">Getting started with Quartz Scheduler on MySQL database <\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/p\/jcg.html\">JCG partner<\/a> Zemian Deng at the <a href=\"http:\/\/saltnlight5.blogspot.gr\/\">A Programmer&#8217;s Journal<\/a> blog.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly experiment different Quartz configuration settings using an external file. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; First step is to setup the database with tables. Assuming you &hellip;<\/p>\n","protected":false},"author":267,"featured_media":220,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[43,200],"class_list":["post-5799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-mysql","tag-quartz"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Getting started with Quartz Scheduler on MySQL database<\/title>\n<meta name=\"description\" content=\"Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with Quartz Scheduler on MySQL database\" \/>\n<meta property=\"og:description\" content=\"Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2012-12-18T17:00:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/quartz-scheduler-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Zemian Deng\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zemian Deng\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html\"},\"author\":{\"name\":\"Zemian Deng\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/decbcaa8856a153c212bedba0079233a\"},\"headline\":\"Getting started with Quartz Scheduler on MySQL database\",\"datePublished\":\"2012-12-18T17:00:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html\"},\"wordCount\":271,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/quartz-scheduler-logo.jpg\",\"keywords\":[\"MySQL\",\"Quartz\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html\",\"name\":\"Getting started with Quartz Scheduler on MySQL database\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/quartz-scheduler-logo.jpg\",\"datePublished\":\"2012-12-18T17:00:48+00:00\",\"description\":\"Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/quartz-scheduler-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/quartz-scheduler-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/12\\\/getting-started-with-quartz-scheduler-on-mysql-database.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Getting started with Quartz Scheduler on MySQL database\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/decbcaa8856a153c212bedba0079233a\",\"name\":\"Zemian Deng\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a52e12ea83eca65c46f00caeddaf307d5d531c3d28ad5219d7bd7e27c45e373f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a52e12ea83eca65c46f00caeddaf307d5d531c3d28ad5219d7bd7e27c45e373f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a52e12ea83eca65c46f00caeddaf307d5d531c3d28ad5219d7bd7e27c45e373f?s=96&d=mm&r=g\",\"caption\":\"Zemian Deng\"},\"sameAs\":[\"http:\\\/\\\/saltnlight5.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Zemian-Deng\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting started with Quartz Scheduler on MySQL database","description":"Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html","og_locale":"en_US","og_type":"article","og_title":"Getting started with Quartz Scheduler on MySQL database","og_description":"Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly","og_url":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2012-12-18T17:00:48+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/quartz-scheduler-logo.jpg","type":"image\/jpeg"}],"author":"Zemian Deng","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Zemian Deng","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html"},"author":{"name":"Zemian Deng","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/decbcaa8856a153c212bedba0079233a"},"headline":"Getting started with Quartz Scheduler on MySQL database","datePublished":"2012-12-18T17:00:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html"},"wordCount":271,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/quartz-scheduler-logo.jpg","keywords":["MySQL","Quartz"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html","url":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html","name":"Getting started with Quartz Scheduler on MySQL database","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/quartz-scheduler-logo.jpg","datePublished":"2012-12-18T17:00:48+00:00","description":"Here are some simple steps to get you fully started with Quartz Scheduler on MySQL database using Groovy. The script below will allow you to quickly","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/quartz-scheduler-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/quartz-scheduler-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2012\/12\/getting-started-with-quartz-scheduler-on-mysql-database.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Getting started with Quartz Scheduler on MySQL database"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/decbcaa8856a153c212bedba0079233a","name":"Zemian Deng","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a52e12ea83eca65c46f00caeddaf307d5d531c3d28ad5219d7bd7e27c45e373f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a52e12ea83eca65c46f00caeddaf307d5d531c3d28ad5219d7bd7e27c45e373f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a52e12ea83eca65c46f00caeddaf307d5d531c3d28ad5219d7bd7e27c45e373f?s=96&d=mm&r=g","caption":"Zemian Deng"},"sameAs":["http:\/\/saltnlight5.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Zemian-Deng"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/5799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/267"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=5799"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/5799\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/220"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=5799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=5799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=5799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}