摘要:定時提醒系統(tǒng)之前通過做了一個定時查詢系統(tǒng),前幾天通過編寫了個升級版,功能和之前的差不多,現(xiàn)在來看看吧。將參數(shù)傳遞到類中創(chuàng)建事件成功,執(zhí)行時間為創(chuàng)建時間后想要修改的話就需要這么寫在實現(xiàn)類里面注入不了那么可以這么做這個就是模塊的部分介紹了。
SpringCloud+quartz 定時提醒系統(tǒng)
之前通過Springboot做了一個定時查詢系統(tǒng),前幾天通過SpringCloud編寫了個升級版,功能和之前的差不多,現(xiàn)在來看看吧。
首先需要先關(guān)注我的測試號啦,本系統(tǒng)通過微信測試號第三方授權(quán)登錄,掃描下方二維碼即可關(guān)注
關(guān)注之后進(jìn)入我的測試號點擊定時提醒則進(jìn)入本系統(tǒng)
既然是使用SpringCloud,那么肯定是要把一個項目分為幾個模塊來運行啦
本人還是學(xué)生,云服務(wù)器只有一臺,所以就把這四個模塊放在同一臺服務(wù)器了,勿怪勿怪~
系統(tǒng)分為四個模塊
Eureka Server 服務(wù)注冊中心
quartz定時提醒服務(wù)
用戶消費者服務(wù)
微信測試號第三方授權(quán)以及發(fā)送模板消息服務(wù)
注:本系統(tǒng)沒有運用zuul網(wǎng)關(guān)
Eureka Server我就不說了,簡單的配置一下就可以直接運用了。
quartz定時提醒呢,就需要quartz這個第三方的庫
org.quartz-scheduler quartz 2.3.0
而且還需要一些spring的依賴
quartz有簡單任務(wù)觸發(fā)和復(fù)雜任務(wù)觸發(fā),本系統(tǒng)使用的是cron復(fù)雜任務(wù)觸發(fā)器定制任務(wù)調(diào)度
編寫一個Job接口實現(xiàn)類
實現(xiàn)里面的execute方法,該方法是在任務(wù)觸發(fā)時執(zhí)行,在方法里面寫上你要執(zhí)行的東西。
之后配置scheduler,項目啟動的時候創(chuàng)建bean
@Configuration public class QuartzConfigration { /** * attention: * Details:定義quartz調(diào)度工廠 */ @Bean(name = "scheduler") public SchedulerFactoryBean schedulerFactory() { SchedulerFactoryBean bean = new SchedulerFactoryBean(); // 用于quartz集群,QuartzScheduler 啟動時更新己存在的Job bean.setOverwriteExistingJobs(true); // 延時啟動,應(yīng)用啟動1秒后 // bean.setStartupDelay(5); // 注冊觸發(fā)器 // bean.setTriggers(jobTrigger); return bean; } }
創(chuàng)建任務(wù)(截取自己寫的工具類中的部分內(nèi)容并加以修改),可以自己寫個工具類,以后方便自己調(diào)用。
String event= (String) map.get("eventId"); String date= (String) map.get("date"); JobDataMap jobDataMap=new JobDataMap(); jobDataMap.put("eventId",event); //將參數(shù)傳遞到Job類中 jobDataMap.put("date",date); JobDetail jobDetail= JobBuilder .newJob(MyBean.class) .withIdentity(key,"group1") .usingJobData(jobDataMap) .build(); CronTrigger cronTrigger = TriggerBuilder.newTrigger() .withIdentity(key, "group1") .withSchedule(CronScheduleBuilder.cronSchedule(cron)) .build(); SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); log.info("創(chuàng)建事件成功,執(zhí)行時間為:{}",format.format(scheduler.scheduleJob(jobDetail,cronTrigger)));
創(chuàng)建時間后想要修改的話就需要這么寫
TriggerKey triggerKey=new TriggerKey(eventId,"group1"); CronTriggerImpl cronTrigger= (CronTriggerImpl) scheduler.getTrigger(triggerKey); cronTrigger.setCronExpression(cron); scheduler.rescheduleJob(triggerKey,cronTrigger);
在Job實現(xiàn)類里面注入不了Service,那么可以這么做
ConfigurableApplicationContext run = SpringApplication.run(SpringcloudQuartzApplication.class, args); EventService eventService = run.getBean(EventService.class); MyBean.eventService=eventService;
這個就是quartz模塊的部分介紹了。
接下來是用戶消費者模塊,調(diào)用quartz的服務(wù),通過Feign進(jìn)行調(diào)用,比較坑的事情是,F(xiàn)eign的方法參數(shù),只能傳遞一個對象參數(shù)和多個參數(shù),不能同時傳遞兩個對象參數(shù),而且傳遞對象參數(shù)還需要在前面加上注解
@PostMapping("/update") public ResultVO update(@RequestBody(required = false)EventForm eventForm, @RequestParam(name = "id") String id);
Feign中默認(rèn)使用Ribbon進(jìn)行負(fù)載均衡(雖然本系統(tǒng)沒有集群~)
微信第三方授權(quán)和發(fā)送模板消息就不多說了,就是使用第三方的庫進(jìn)行編寫
com.github.binarywang weixin-java-mp 2.8.0
微信第三方授權(quán)的github也貼出來,可以自行去看API,點擊這里進(jìn)入github
項目效果演示
好了,介紹就到這里啦~
有什么問題就發(fā)我郵箱提問吧
13427434344@163.com
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70723.html
摘要:定時提醒系統(tǒng)之前通過做了一個定時查詢系統(tǒng),前幾天通過編寫了個升級版,功能和之前的差不多,現(xiàn)在來看看吧。將參數(shù)傳遞到類中創(chuàng)建事件成功,執(zhí)行時間為創(chuàng)建時間后想要修改的話就需要這么寫在實現(xiàn)類里面注入不了那么可以這么做這個就是模塊的部分介紹了。 SpringCloud+quartz 定時提醒系統(tǒng) 之前通過Springboot做了一個定時查詢系統(tǒng),前幾天通過SpringCloud編寫了個升級版,...
摘要:定時提醒系統(tǒng)之前通過做了一個定時查詢系統(tǒng),前幾天通過編寫了個升級版,功能和之前的差不多,現(xiàn)在來看看吧。將參數(shù)傳遞到類中創(chuàng)建事件成功,執(zhí)行時間為創(chuàng)建時間后想要修改的話就需要這么寫在實現(xiàn)類里面注入不了那么可以這么做這個就是模塊的部分介紹了。 SpringCloud+quartz 定時提醒系統(tǒng) 之前通過Springboot做了一個定時查詢系統(tǒng),前幾天通過SpringCloud編寫了個升級版,...
摘要:定時提醒系統(tǒng)之前通過做了一個定時查詢系統(tǒng),前幾天通過編寫了個升級版,功能和之前的差不多,現(xiàn)在來看看吧。將參數(shù)傳遞到類中創(chuàng)建事件成功,執(zhí)行時間為創(chuàng)建時間后想要修改的話就需要這么寫在實現(xiàn)類里面注入不了那么可以這么做這個就是模塊的部分介紹了。 SpringCloud+quartz 定時提醒系統(tǒng) 之前通過Springboot做了一個定時查詢系統(tǒng),前幾天通過SpringCloud編寫了個升級版,...
摘要:添加任務(wù)成功運行任務(wù)名稱添加定時任務(wù)服務(wù)定時任務(wù)服務(wù)。觸發(fā)器計劃列表添加測試任務(wù)類測試任務(wù)類被任務(wù)調(diào)度后執(zhí)行該任務(wù)類。聲明一個靜態(tài)變量保存添加啟動類簡單微服務(wù),不支持分布式。 SpringCloud(第 009 篇)簡單 Quartz 微服務(wù),不支持分布式 - 一、大致介紹 1、本章節(jié)僅僅只是為了測試 Quartz 在微服務(wù)中的使用情況; 2、其實若只是簡單的實現(xiàn)任務(wù)調(diào)用而言的話,Sp...
摘要:加載配置文件失敗加載配置文件失敗添加定時調(diào)度任務(wù)定時調(diào)度任務(wù)添加定時調(diào)度任務(wù)定時調(diào)度任務(wù)執(zhí)行的張表入數(shù)據(jù)庫添加啟動類簡單微服務(wù),采用注解配置分布式集群。 SpringCloud(第 054 篇)簡單 Quartz-Cluster 微服務(wù),采用注解配置 Quartz 分布式集群 - 一、大致介紹 1、因網(wǎng)友提到有沒有采用注解式配置的Quartz例子,因此本人就貼上了這樣一個樣例; 2、至...
閱讀 898·2021-10-25 09:44
閱讀 1269·2021-09-23 11:56
閱讀 1191·2021-09-10 10:50
閱讀 3136·2019-08-30 15:53
閱讀 2140·2019-08-30 13:17
閱讀 621·2019-08-29 18:43
閱讀 2498·2019-08-29 12:57
閱讀 860·2019-08-26 12:20