免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
任務(wù)調(diào)度的實(shí)現(xiàn)(實(shí)例 源碼 驚喜)

看了一下,度娘說(shuō)的還挺啰嗦的,實(shí)在不懂的可以去問(wèn)問(wèn)度娘,在這我就不粘貼了。

就我的話來(lái)說(shuō),任務(wù)調(diào)度,就是在一個(gè)合適的時(shí)機(jī)去執(zhí)行一項(xiàng)任務(wù),當(dāng)然這個(gè)時(shí)機(jī)是有計(jì)劃的。例如,你定了一個(gè)鬧鐘,到了指定的時(shí)間鬧鐘就會(huì)響,這就是一個(gè)任務(wù)的調(diào)度,包括指定的時(shí)機(jī)(鬧鐘定的時(shí)間),任務(wù)的進(jìn)行及完成(鬧鐘響,你起床)。當(dāng)然,這只是其中的一種理解....好了廢話不多說(shuō),進(jìn)入正題:

Quartz是一個(gè)完全由java編寫(xiě)的開(kāi)源作業(yè)調(diào)度框架。不要讓作業(yè)調(diào)度這個(gè)術(shù)語(yǔ)嚇著你。盡管Quartz框架整合了許多額外功能, 但就其簡(jiǎn)易形式看,你會(huì)發(fā)現(xiàn)它易用得簡(jiǎn)直讓人受不了!(這是度娘的說(shuō)法)

不過(guò),看了這篇文章之后,你也會(huì)覺(jué)得它足夠簡(jiǎn)單

說(shuō)道Quartz,不得不提到它的兩個(gè)對(duì)象:

Job : 工作任務(wù) ,你要做什么

Trigger : 執(zhí)行工作任務(wù) 觸發(fā)條件 , 什么時(shí)間執(zhí)行, 多久執(zhí)行一次

在你的Job接口實(shí)現(xiàn)類里面,添加一些邏輯到execute()方法。一旦你配置好Job實(shí)現(xiàn)類并設(shè)定好調(diào)度時(shí)間表,Quartz將密切注意剩余時(shí)間。當(dāng)調(diào)度程序確定該是通知你的作業(yè)的時(shí)候,Quartz框架將調(diào)用你Job實(shí)現(xiàn)類(作業(yè)類)上的execute()方法并允許做它該做的事情。無(wú)需報(bào)告任何東西給調(diào)度器或調(diào)用任何特定的東西。僅僅執(zhí)行任務(wù)和結(jié)束任務(wù)即可。如果配置你的作業(yè)在隨后再次被調(diào)用,Quartz框架將在恰當(dāng)?shù)臅r(shí)間再次調(diào)用它。

在實(shí)際開(kāi)發(fā)中的應(yīng)用(舉個(gè)栗子):

1.商城的促銷活動(dòng),當(dāng)你設(shè)置一個(gè)商品限時(shí)打折之后,務(wù)必會(huì)在活動(dòng)結(jié)束之后將商品恢復(fù)原價(jià),這就需要設(shè)置一個(gè)Trigger(在活動(dòng)結(jié)束時(shí)執(zhí)行一個(gè)任務(wù),即Job),還需要設(shè)置一個(gè)Job(執(zhí)行的事情就是將商品恢復(fù)原價(jià))。

2.再比如,QQ上,到了你的生日或者你好友的生日,都會(huì)給你發(fā)出提醒,這使用了任務(wù)調(diào)度。

知道了要做什么事,接下來(lái)就開(kāi)懟吧:

在這里,我給出的例子是ssm框架+Quartz任務(wù)調(diào)度的一個(gè)簡(jiǎn)單實(shí)現(xiàn),撇開(kāi)ssm不說(shuō)(有沒(méi)有,都不影響你的練習(xí)),Quartz的代碼大概就是以下內(nèi)容(也不能說(shuō)是大概內(nèi)容,可以說(shuō)是全部?jī)?nèi)容吧,不要問(wèn)我為什么,度娘說(shuō)了:“你會(huì)發(fā)現(xiàn)它易用得簡(jiǎn)直讓人受不了”):

圖中一共提到了兩種配置任務(wù)調(diào)度的方法(圖中已經(jīng)介紹的很詳細(xì)了),這么看著不方便的話,你可以把圖片下載下來(lái),一邊理解一邊看,順著線條找到思路。

下面是代碼:

Quartz需要的依賴:

org.quartz-scheduler

quartz

2.2.1

org.quartz-scheduler

quartz-jobs

2.2.1

spring配置文件 applicationContext.xml:

xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context'

xsi:schemaLocation='http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd '>

自定義的工廠類 JobFactory :

package com.cc.job;

import org.quartz.spi.TriggerFiredBundle;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.config.AutowireCapableBeanFactory;

import org.springframework.scheduling.quartz.AdaptableJobFactory;

import org.springframework.stereotype.Service;

@Service('jobFactory')

public class JobFactory extends AdaptableJobFactory {

@Autowired

private AutowireCapableBeanFactory capableBeanFactory;

/*創(chuàng)建工作實(shí)例 固定*/

@Override

protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {

// 調(diào)用父類的方法

Object jobInstance = super.createJobInstance(bundle);

// 進(jìn)行注入

capableBeanFactory.autowireBean(jobInstance);

return jobInstance;

}

}

任務(wù)類 DelUglyMovie :

package com.cc.job;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.springframework.stereotype.Service;

/**

* @author peng 2018年4月2日

* 刪除難看的

*/

@Service

public class DelUglyMovie implements Job{

/* (non-javadoc)

* @see org.quartz.Job#execute(org.quartz.JobExecutionContext)

*/

@Override

public void execute(JobExecutionContext context)

throws JobExecutionException {

System.out.println('執(zhí)行DelUglyMovie');

System.out.println(new Date());

}

}

任務(wù)類 UpdateHotMovie :

package com.cc.job;

import java.util.List;

import javax.annotation.Resource;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.springframework.stereotype.Service;

import com.cc.domain.Movie;

import com.cc.service.MovieService;

/**

* @author peng 2018年4月2日

*

*/

@Service

public class UpdateHotMovie implements Job{

@Resource

private MovieService movieService;

/* (non-javadoc)

* @see org.quartz.Job#execute(org.quartz.JobExecutionContext)

*/

@Override

public void execute(JobExecutionContext context)

throws JobExecutionException {

System.out.println('執(zhí)行定時(shí)任務(wù)');

List movies = movieService.findAll();

for (Movie movie : movies) {

System.out.println(movie);

}

}

}

順便告訴你個(gè)事,文中也提到了一個(gè)叫做cron表達(dá)式的東東,它是什么,你可以百度一下,然后你會(huì)發(fā)現(xiàn),知道是什么了之后不會(huì)寫(xiě)怎么辦,我會(huì)告訴你,莫慌,看法寶: http://cron.qqe2.com,這是一個(gè)自動(dòng)生成cron表達(dá)式的地方,怎么操作,看了就知道了,一般人我不告訴他....

java就像一盒巧克力,你永遠(yuǎn)不知道,ta還爆出什么bug....

以上內(nèi)容均為個(gè)人所述,如有不妥,歡迎指正,謝謝

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Quartz任務(wù)調(diào)度入門(mén)
spring boot 2.0 quartz 輕松實(shí)現(xiàn)定時(shí)任務(wù)和作業(yè)調(diào)度
spring定時(shí)執(zhí)行
SpringBoot定時(shí)任務(wù)實(shí)現(xiàn)的兩種方式介紹
quartz使用案例篇【面試+工作】
Quartz定時(shí)任務(wù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服