1. 程式人生 > >SpringBoot學習-簡單QuartZ定時器設定

SpringBoot學習-簡單QuartZ定時器設定

上一篇說明了一下Spring自帶的定時器設定,這一件就簡單敘述一下QuartZ的配置過程。
首先是新建一個QuartZ的配置檔案-quartz.properties:

org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 1
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames =init/quartz_data_jobs.xml org.quartz.plugin.jobInitializer.failOnFileNotFound = true

再新建一個XML檔案用於存放定時執行的Job資訊-quartz_data_jobs.xml:

<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data
        xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd" version="1.8">
<schedule> <job> <name>FirstJob</name
>
<group>DummyGroup</group> <description>This is FirstJob</description> <job-class>com.example.demo.quartz.TestJob2</job-class> </job> <trigger> <cron> <name>dummyTrigger</name> <job-name>FirstJob</job-name> <job-group>DummyGroup</job-group> <!-- It will run every 2 seconds --> <cron-expression>0/2 * * * * ?</cron-expression> </cron> </trigger> </schedule> </job-scheduling-data>

建立需要執行的Job類-TestJob2:

package com.example.demo.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import java.util.Date;

public class TestJob2 implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("正在執行定時任務:"+new Date());
    }
}

最後是建立一個配置類,用於QuartZ的啟動配置-QuartZConfig:

package com.example.demo.quartz;

import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class QuartZConfig {

    private ApplicationContext applicationContext;

    /**
     * quartz 啟動配置
     */
    @Bean
    public SchedulerFactory quartz() throws SchedulerException {
        // Creating scheduler factory and scheduler
        SchedulerFactory factory = new StdSchedulerFactory("quartz.properties");
        Scheduler scheduler = factory.getScheduler();
        scheduler.start();
        return factory;
    }
}

執行結果如下:
這裡寫圖片描述

可以看到定時任務正常執行了。

補充maven引包:

<!--QuartZ定時任務-->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
</dependency>

相關推薦

SpringBoot學習-簡單QuartZ定時設定

上一篇說明了一下Spring自帶的定時器設定,這一件就簡單敘述一下QuartZ的配置過程。 首先是新建一個QuartZ的配置檔案-quartz.properties: org.quartz.scheduler.instanceName = MySched

Quartz定時設定

<!-- 配置定時任務 -->          <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">         <property name=

springboot整合quartz定時實現定時任務詳解

最近需要 做一個按照時間,定時初始化一些資訊的功能,研究了一下quartz,也簡單瞭解一下TimerTask,廢話不多說。 quartz和TimerTask的區別: timer是jdk自帶的(可想而知,肯定是不怎麼好用)。 Quartz可以通過cron表示式精確到特定時間執行,而T

Quartz 定時的時間設定

    時間的配置如下:<value>0 26 16 * * ?</value>    時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年    *為任意 ?為無限制。 由此上面所配置的內

springboot使用Quartz定時

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> <

quartz定時簡單使用

  首先我們需要匯入quartz的包,我用的maven管理jar包,Spring3.1以下的版本才能用quartz1.X的版本, Spring3.1以上的版本才能用quartz2.X的版本   具體原因沒有深究 <dependency> <g

spring整合Quartz定時

() void java類 info throws tex execute new protect 第一種:為普通java類中的某個方法配置跑批任務 1.定義要跑批的類和方法: package com.xy.utils.quartz; import org.joda.t

quartz定時實現

quartz總結:要實現定時器quartz,我們註意兩步就行了,一是寫好實現類註意實現類的方法名要和配置中一致,二是做好配置。然後就可以測試了。①定時器實現類HealthRecodersTokenScheduler.javapublic class HealthRecodersTokenScheduler {

(筆記)Linux內核學習(八)之定時和時間管理

全局變量 define 結構 load 統計 object 一個 完成 溢出 一 內核中的時間觀念 內核在硬件的幫助下計算和管理時間。硬件為內核提供一個系統定時器用以計算流逝的時間。系 統定時器以某種頻率自行觸發,產生時鐘中斷,進入內核時鐘中斷處理程序中進行

setInterval定時設定開關

box 方案 pan speed style current 給定 dst interval 今天簡單寫一個小案例:點擊按鈕,讓div“走”起來。主要是為了說明給定時器設定開關時需要註意的幾個問題。需求是:當點擊按鈕,讓div向右一直移動,當移動到500像素時,停下來。好了

java學習筆記之定時

blog div this rgs date row demo sdf 時間 定時器 1 package pack01_timer; 2 3 import java.io.File; 4 import java.text.ParseException; 5 i

string整合Quartz定時

調度 obd ont 觸發 lfa sta 每天 cron表達式 PE 直接上配置文件,此方法只需要配置好配置文件就行 1 <!--配置調度器--> 2 <bean name="startQuertz" lazy-init="false" a

百度前端學習日記20——定時

out val interval fun tint 日記 tin clear 對象 setTimeout("function",time) 設置一個超時對象 setInterval("function",time) 設置一個超時對象 SetInterval為自動重復,set

SpringBoot知識體系實戰-定時

之前 假設 schedule 取數據 rep 文件中 nag mark fc7 實戰前言:定時任務我想諸位童鞋都不陌生,簡而言之名為“設定定時鬧鐘做某件事情”,在這裏我將以訂單模塊作為實戰為例! 需求分析:在企業級應用中,經常打交道的業務應當屬於訂單模塊了,下面將基於這樣的

微信小程序學習Course 7 定時功能

換算 ava 而且 tint 毫秒 src ole 時間 技術 微信小程序學習Course 7 定時器功能 微信小程序中有一個定時器API函數,其提供了四個API接口 7.1、number setTimeout(function callback, number

STM32學習之普通定時是否能定時1us?

對於STM32F10x系列使用普通定時器能否能定時1us,筆者一直抱有懷疑態度。 於是筆者做了下述實驗: 程式碼: 主函式: int main(void) {SystemClock_Config();LED_Init();//LED初始化NVIC_Config();Timer2_

使用springboot時,@Scheduled定時遇到的問題

 @Scheduled 這個註解確實給我們帶了很大的方便,我們只要加上該註解,並且根據需求設定好就可以使用定時任務了。 但是,我們需要注意的是,@Scheduled 並不一定一定會按時執行。 因為使用@Scheduled 的定時任務雖然是非同步執行的,但是,不同的定時任務之間並

Broadcast基礎(使用廣播,傳送臨時廣播,註冊接收器,通過定時設定定時廣播)

舉例場景: 碎片將資訊傳回頁面,介面卡向頁面傳回訊息 (一)Fragment提供了onAttach()方法,onAttach方法指定結合了Activity物件。定義一個回撥介面,把Activity物件強制轉換為回撥介面就可以在碎片中呼叫頁面方法 (二)Broadcast 

spring-quartz 定時 給targetMethod傳遞引數

今天在做一個專案的時候,要給一個定時器任務的執行方法傳遞引數,在網上找了一下資料,可以使用arguments引數:   <bean id="subsidyJobDetail" class="org.springframework.scheduling.quartz

51微控制器學習筆記之定時程式設計

一、定時器/計數器概述 1.相關暫存器 (1)TMOD——方式控制暫存器     GATE C/T M1 M0(T1 T0)   GATE=0,定時器/計數器的執行由內部TR0/TR1置1選通;   GATE=1,定時器/計數器的執行由外部中斷(I引腳P3.2/P3.3)和內部TR0/TR1 置1共