Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Elastic-Job分布式任务调度_v1.0 PDF 下载


分享到:
时间:2020-10-13 11:07来源:http://www.java1234.com 作者:转载  侵权举报
Elastic-Job分布式任务调度_v1.0 PDF 下载
失效链接处理
Elastic-Job分布式任务调度_v1.0 PDF 下载

本站整理下载:
提取码:zwf2 
 
 
相关截图:
 
主要内容:

Elastic-Job分布式任务调度 1.概述 1.1.什么是任务调度 我们可以先思考一下下面业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。 12306会根据车次的不同,而设置某几个时间点进行分批放票。 某网站为了实现天气实时展示,每隔5分钟就去天气服务器获取最新的实时天气信息。 以上场景就是任务调度所需要解决的问题。 任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人 力由系统自动去执行任务。
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
任务调度如何实现? 多线程方式实现: 学过多线程的同学,可能会想到,我们可以开启一个线程,每sleep一段时间,就去检查是否已到预期执行时间。 以下代码简单实现了任务调度的功能: 上面的代码实现了按一定的间隔时间执行任务调度的功能。 Jdk也为我们提供了相关支持,如Timer、ScheduledExecutor,下边我们了解下。 Timer方式实现: Timer 的优点在于简单易用,每个Timer对应一个线程,因此可以同时启动多个Timer并行执行多个任务,同一个 Timer中的任务是串行执行。 ScheduledExecutor方式实现: public static void main(String[] args) { //任务执行间隔时间 final long timeInterval = 1000; Runnable runnable = new Runnable() { public void run() { while (true) { //TODO:something try {Thread.sleep(timeInterval); } catch (InterruptedException e) { e.printStackTrace(); } } } };Thread thread = new Thread(runnable); thread.start(); }public static void main(String[] args){ Timer timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { //TODO:something } }, 1000, 2000); //1秒后开始调度,每2秒执行一次 }
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
Java 5 推出了基于线程池设计的 ScheduledExecutor,其设计思想是,每一个被调度的任务都会由线程池中一个 线程去执行,因此任务是并发执行的,相互之间不会受到干扰。 Timer 和 ScheduledExecutor 都仅能提供基于开始时间与重复间隔的任务调度,不能胜任更加复杂的调度需求。 比如,设置每月第一天凌晨1点执行任务、复杂调度任务的管理、任务间传递数据等等。 Quartz 是一个功能强大的任务调度框架,它可以满足更多更复杂的调度需求,Quartz 设计的核心类包括 Scheduler, Job 以及 Trigger。其中,Job 负责定义需要执行的任务,Trigger 负责设置调度策略,Scheduler 将二 者组装在一起,并触发任务开始执行。Quartz支持简单的按时间间隔调度、还支持按日历调度方式,通过设置 CronTrigger表达式(包括:秒、分、时、日、月、周、年)进行任务调度。 第三方Quartz方式实现: public static void main(String [] agrs){ ScheduledExecutorService service = Executors.newScheduledThreadPool(10); service.scheduleAtFixedRate( new Runnable() { @Override public void run() { //TODO:something System.out.println("todo something"); } }, 1, 2, TimeUnit.SECONDS); }

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐