精华内容
下载资源
问答
  • 定时调度

    2019-06-05 22:18:22
    所有的系统开发里面定时调度绝对是一个核心的话题,对于定时调度的实现在实际开发之中可以使用:TimerTask、Quartz、 SpringTask 配置,实际上这里面最简单的配置就是 Spring 自己所提供的 Task 处理。 1、 如果要...

     所有的系统开发里面定时调度绝对是一个核心的话题,对于定时调度的实现在实际开发之中可以使用:TimerTask、Quartz、 SpringTask 配置,实际上这里面最简单的配置就是 Spring 自己所提供的 Task 处理。

     1、 如果要想实现定时调度,只需要配置一个定时调度的组件类即可:

     2、 如果现在要想执行此任务,那么还需要有一个基本的前提:你的程序启动类上一定要启用调度处理。

    这个时候所实现的任务调度只是串行任务调度,也就是说所有的任务是一个一个执行的处理方式,那么如果现在有一个任务 所花费的时间特别的长,则其它的任务都会积压,实际开发之中很明显这种处理是不可能存在的。

     3、 如果要想启用并行的调度处理,则一定要准备出一个线程调度池,进行一个线程调度的配置类:

    展开全文
  • 定时调度任务说明

    2018-01-26 20:47:58
    定时调度任务说明
  • quartz定时调度

    2016-11-15 16:28:40
    quartz定时调度demo,jar也放在里面了,引入jdk即可,jdk最后大于等于1.6
  • 数据库配置定时调度

    2017-11-29 10:47:38
    quartz定时调度,数据库配置执行时间,可用,挺好的,够了
  • 配置定时计划,以及定时调度任务, 调度配置工具 ORM基于Dapper实现 日志采用Nlog实现 将程序打包为桌面安装程序,采用Microsoft Visual Studio 2010、2015、2017 Installer Projects实现 调度服务实现 采用Quartz...
  • 主要介绍了quarzt定时调度任务,具有一定参考价值,需要的朋友可以了解下。
  • java相关:Spring中实现定时调度的几种方法发布于 2020-11-28|复制链接本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能,有兴趣的可以了解一下。...

    java相关:Spring中实现定时调度的几种方法

    发布于 2020-11-28|

    复制链接

    本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能,有兴趣的可以了解一下。

    1,内容简介所谓的定时调度,是指在无人值守的时候系统可以在某一时刻执行某些特定的功能采用的一种机制,对于传统的开发而言,定时调度的操作分为两种形式: 定时触发:到某一时间点上执行某些处理操作; 间隔触发:每隔几秒后进行某些操作的自动处理。所有的处理都依赖于计算机系统底层的时钟发生器,在java最初的实现过程里面,真对于定时处理专门提供有两个类:Timer,TimerTask两个类,其中TimerTask主要是定义任务的执行,相当于启动一个线程去执行某些任务。

    ```java

    public class MyTask extends TimerTask{

    @Override

    public void run() {//定义要执行的任务

    // TODO Auto-generated method stub

    String currentTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date());

    System.out.println(currentTime);

    }

    }

    public class MyTaskTest {

    public static void main(String[] args) {

    Timer timer=new Timer();

    timer.schedule(new MyTask(), 1000);//启动任务,延迟1秒后执行。

    }

    }

    ```

    但是,如果要求要在每年的某月某时某分某秒执行某个任务,使用Timer和TimerTask就无能为力了。在项目开发中往往会有两种定时控制的选择:quartz组件:企业及定时调度组件,需要单独配置;SpringTask:轻量级组件,配置简单,可以利用Annotation实现配置处理。2,Quartz定义定时调度使用Quartz组件,我们需要导入quartz的开发包,在pom.xml中添加quartz的开发包。

    ```xml

    org.quartz-scheduler

    quartz

    2.2.3

    ```

    引入包后,就可以进行定时调度的开发了。有两种实现模式:去继承QuartzJobBean父类;直接利用配置就可以实现方法的调度控制。1,继承一个父类实现任务的处理。

    ```java

    public class MyTask2 extends QuartzJobBean{

    @Override

    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {

    // TODO Auto-generated method stub

    String currentTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date());

    System.out.println(currentTime);

    System.out.println("具体的任务实现!!!");

    }

    }

    ```

    所有的定时调度的启用都要在Spring的控制文件中完成,即,不需要去写一个明确的类来进行定时任务启用。2,在applicationContext.xml文件中增加定时调度的配置,通过定时调度工厂类实现。

    ```xml

    ```

    随后配置任务的触发作业,对于作业的配置有两类:使用间隔触发:若干时间之后重复执行;工厂类:org.springframework.scheduling.quartz.SimpleTriggerFactoryBean

    ```xml

    ```

    设置间隔触发调度器:org.springframework.scheduling.quartz.SchedulerFactoryBean

    ```xml

    ```

    3,此时所有的间隔触发控制都交由Spring管理了,现在只需要启动Spring容器即可实现间隔触发任务。使用Cron实现定时触发Quartz不仅可以实现间隔触发,它还可以结合Cron实现定时触发,这也是它最重要的功能。一般项目中使用最多的模式:小时触发,月初触发,年初触发。修改之前的间隔触发配置,使用CronTriggerFactoryBean实现定时触发。

    ```xml

    ```

    启动Spring容器即可实现。2,不继承任何类实现定时调度在项目开发中,继承直接会导致单继承的局限控制,所以在这种情况下Spring中提供了一种可以不继承任何类即可实现定时操作的任务处理。定义一个任务执行类,不继承任何类。

    ```java

    public class MyTask2 {

    public void taskSelf(){

    String task=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new java.util.Date());

    System.out.println(task);

    System.out.println("执行具体任务操作");

    }

    }

    ```

    在applicationContext.xml在配置工厂类:org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean

    ```xml

    ```

    随后在任务调度配置上配置新的程序类

    ```xml

    ```

    启动容器即可实现定时调度。这种模式没有类的继承依赖,处理会更加灵活。Spring Task实现定时调度在Spring中自己有对定时调度的支持,使用起来感觉比Quartz还要好用。它有两种实现方式,1,在applicationContext.xml中配置实现;2,使用Annotation实现。不过使用什么模式,必须先有一个任务处理类。定义任务处理类。这里直接使用之前的MyTask2类,不再重复写。 修改applicationContext.xml文件:需要追加task处理的命名空间定义:

    ```xml

    ```

    1配置task操作的配置,实现间隔触发。

    ```xml

    ```

    使用cron实现定时触发

    ```xml

    ```

    展开全文
  • sprinboot 定时调度

    2020-12-14 14:37:00
    1.开启定时调度,给主应用添加@EnableScheduling // 开启定时任务功能 @EnableScheduling // 开启定时任务功能 @EnableAsync @SpringBootApplication public class WebMybatisApplication extends SpringBoot...

    1.开启定时调度,给主应用添加@EnableScheduling // 开启定时任务功能

    @EnableScheduling // 开启定时任务功能
    @EnableAsync
    @SpringBootApplication
    public class WebMybatisApplication extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
            SpringApplication.run(WebMybatisApplication.class, args);
        }
    
        @Override //为了打包springboot项目
        protected SpringApplicationBuilder configure(
                SpringApplicationBuilder builder) {
            return builder.sources(this.getClass());
        }
    
    }

    2.编写ScheduledService,给Service添加@Component

    //定时调度
    @Component
    public class ScheduledService {
        private int i;
      
        @Scheduled(cron = "15 * * ? * *")
        public void execute() {  
                System.out.println( i+"===FixedPrintTask execute times");
        }
          
    }

    3.运行,系统则自动调用

    4. cron属性

    这是一个时间表达式,可以通过简单的配置就能完成各种时间的配置,我们通过CRON表达式几乎可以完成任意的时间搭配,它包含了六或七个域:

    cron表达式语法
    [秒] [分] [小时] [日] [月] [周] [年]
    注:[年]不是必须的域,可以省略[年],则一共6个域

    Seconds : 可出现", - * /"四个字符,有效范围为0-59的整数
    Minutes : 可出现", - * /"四个字符,有效范围为0-59的整数
    Hours : 可出现", - * /"四个字符,有效范围为0-23的整数
    DayofMonth : 可出现", - * / ? L W C"八个字符,有效范围为0-31的整数
    Month : 可出现", - * /"四个字符,有效范围为1-12的整数或JAN-DEc
    DayofWeek : 可出现", - * / ? L C #"四个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推
    Year : 可出现", - * /"四个字符,有效范围为1970-2099年

    下面简单举几个例子:

    "0 0 12 * * ?"    每天中午十二点触发
    "0 15 10 ? * *"    每天早上10:15触发
    "0 15 10 * * ?"    每天早上10:15触发
    "0 15 10 * * ? *"    每天早上10:15触发
    "0 15 10 * * ? 2005"    2005年的每天早上10:15触发
    "0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发
    "0 0/5 14 * * ?"    每天从下午2点开始到2:55分结束每5分钟一次触发
    "0 0/5 14,18 * * ?"    每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
    "0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发
    "0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44触发
    "0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10:15触发

    展开全文
  • kettle定时调度

    2021-01-11 13:24:37
    根据不同的操作系统定时调度kettle资源库中的job 2.案例适用范围: windows环境kettle资源库中job调度,linux环境kettle资源库中job调度,linux环境定时任务参数设置 3.本文主要包含如下三个内容介绍希望大家喜欢:...

    简单版:

    https://blog.csdn.net/hzp666/article/details/107841754

     

    详细版:

    1.场景介绍:
    根据不同的操作系统定时调度kettle资源库中的job

    1.1Windows系统的定时调度:

    我的是 version7.1

    如上图,在kettle里面的作业已经执行成功。

    一、首先编写kettle.bat脚本:(kitchen.bat  后面可以是-也可以是/然后再加options,而options 后面可以是=也可以是:也可以是空格

     D:
    cd D:\kettle\pdi-ce-7.1.0.0-12\data-integration
    kitchen.bat -rep=product -user=admin -pass=admin -dir=/ -job=人才生产线job -level=basic>D:\kettle\JOB.log

    顺便解释一下:

    1、首先cd 是进入到kettle安装执行文件目录下 
           -rep 表示的是你的仓库名,也就是你的资源库的名称,这里我的资源库名称就是 JS_JOB
           -user 资源库用户名    这里就是admin
          -pass 资源库密码        这里是qdhuang 默认的是admin ,为了安全我们可以更改密码
          -dir    就是你的job在资源库中存放目录  支持中文的目录
          -job   job的名称   这里我的job名称就是jobname(job名字不要带后缀,不然提示找不到job错误)
          -level 日志的级别  我们普通的写basic就可以了,就是最基本的
          最后面就是日志了,针对job跑起来的相关信息都会保存在job.log中
    2、针对相关的更多参数如下(options):
    /rep        : Repository name
    /user       : Repository username
    /pass       : Repository password
    /job        : The name of the job to launch
    /dir        : The directory (dont forget the leading /)
    /file       : The filename (Job XML) to launch
    /level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
    /logfile    : The logging file to write to
    /listdir    : List the directories in the repository
    /listjobs   : List the jobs in the specified directory
    /listrep    : List the available repositories
    /norep      : Do not log into the repository
    /version    : show the version, revision and build date
    /param      : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar
    /listparam : List information concerning the defined parameters in the specified job.
    /export     : Exports all linked resources of the specified job. The argument is the name of a ZIP
    file.

    注意:

    保存kitchen.bat文件时,刚开始选的编码是utf8,此时中文乱码(后改为Unicode也是乱码),最后改为ANSI就可以了。

    二、完成bat脚本以后,双击测试一下,会跳出cmd命令窗口,此时打开JOB.log日志记录,会发现已经在执行作业了,等待完成以后,cmd窗口会自动关闭。接下来就是Windows的定时任务来管理调度bat脚本了。

    三、windows下建立执行任务(我的服务器是Windows Server 2016 Datacenter)

    打开控制面板--管理工具--任务计划程序

    打开右侧的创建基本任务,填写作业名称,然后下一步打开触发器:

    打开触发器,根据自己的需求选择执行频率,然后下一步打开具体的设置:

     

    打开操作,下一步打开具体设置(选择需要执行的bat脚本),下一步完成:

     

    至此,Windows计划任务调度kettle作业完成。

    二:linux环境crond定时任务执行kettle资源库中的job
    linux环境定时调度任务主要用crond
    1、先手动执行定时任务以此来判断脚本是否有问题。
    手动调job没有问题:
    在这里插入图片描述
    2、确认服务器是否开启定时任务计划服务
    命令:service crond status
    启动命令:service crond start
    在这里插入图片描述
    3.设置定时任务:
    12 17 * * * /data/data-integration/kitchen.sh -rep=xforceplus -job=sj_sjzc_job -dir=/Hades/ETL/OTHER_DATA>/root/cron.log
    在这里插入图片描述
    4.17:12查看定时任务结果
    a.17:12程序启动成功
    在这里插入图片描述
    b.文件成功生成
    在这里插入图片描述
    三.kettle更多参数介绍
    在这里插入图片描述
    在这里插入图片描述
    kettle更多参数如下:
    /rep : Repository name
    /user : Repository username
    /pass : Repository password
    /job : The name of the job to launch
    /dir : The directory (dont forget the leading /)
    /file : The filename (Job XML) to launch
    /level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
    /logfile : The logging file to write to
    /listdir : List the directories in the repository
    /listjobs : List the jobs in the specified directory
    /listrep : List the available repositories
    /norep : Do not log into the repository
    /version : show the version, revision and build date
    /param : Set a named parameter =. For example -param:FOO=bar
    /listparam : List information concerning the defined parameters in the specified job.
    /export : Exports all linked resources of the specified job. The argument is the name of a ZIP

    crontab更多设置可参考:Linux定时任务Crontab命令详解
    更多ketlle视频资料下载地址:kettle视频资料

    展开全文
  • Python定时调度执行

    2020-04-28 15:07:37
    python定时调度
  • 定时器中 Timer 有单线程等缺陷,quartz依赖太重, 用 ScheduledThreadPoolExecutor 又想实现定时调度,实现一个工具类计算初次调度时间即可。 import java.util.concurrent._ val task = new Runnable { ...
  • kettle定时调度监控方案选型策略 kettle定时调度监控方案选型策略
  • springboot 定时调度

    2017-09-30 00:27:06
    定时调度常用Timetask , QuartZ, Springtask。 Timetask由于时效性不好,很少作为企业级调度,而QuzrtZ开发太麻烦,所以使用Springtask进行配置。 新建一个定时调度的类,并使用注解方式进行调度 package ...
  • nodejs定时调度任务
  • quartz定时调度完整实例 完美调度quartz定时调度完整实例 完美调度
  • 简单的看下线程的定时调度package cn.jd.others; import java.util.Timer;... * 任务定时调度:借助Timer类和TimerTask类 */ public class MyTimerTest01 { public static void main(String[] args) { Ti...
  • 定时管理,定时调度作业,一个很好用的定时调度作业第三方软件
  • rufus-scheduler - Ruby 作业定时调度程序
  • Quartz定时调度

    2019-07-29 22:25:53
    一、利用quartz实现定时调度 1、Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。这里我介绍quartz的两种方式。我这里搭建的框架是采用...
  • Java的定时调度

    2018-01-15 22:19:00
    一般在web开发中定时调度比较有用,因为要维护一个容器不关闭才可以一直定时操作下去。  定时调度:每当一段时间之后,程序就会自动执行,就称为定时调度。如果要使用定时调动,则必须要保证程序要始终运行着,也...
  • quartz 2.2.1 定时调度 java 最新版jar
  • 定时调度工具类,quartz 2.1.7类包,是定时大哥大哥!!!!!
  • 定时调度器 xxl-job

    2018-12-21 10:02:34
    这个文件包含了xxl-job的定时调度中心源码、执行器demo源码,需要的可以下载。
  • 任务调度 1、作用 定时执行任务 2、任务调度场景 ...同步任务:多次尝试调用失败,补偿机制(日志+定时job) ...quartz: 定时调度框架 springboot内置定时任务调度 基本三种方式 多线程 public class MulThreadTas...
  • Springboot集成定时调度

    2020-11-25 22:03:00
    1、利用定时调度可以帮助用户实现无人值守程序执行,在Spring中提供了简单的SpringTask调度执行任务,利用此组件可以实现间隔调度与CRON调度处理。 首先需要创建一个线程调度类,如下所示: 1 package ...
  • Java 定时调度任务

    2018-06-05 21:14:51
    Java 定时调度任务 重点内容
  • quartz java定时调度代码,例子中每一分钟执行一次,可修改任意时间。rar

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,977
精华内容 5,190
关键字:

定时调度