Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)

Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)_第1张图片
关闭
  • quartz_Cron表达式一分钟教程
     09-05
  • quartz定时任务中常用的cron表达式
     05-08
  • Quartz2实现任务的临时启动/暂停/恢复
     05-17
  • quartz 获取正在执行的任务
     12-20
  • 在spring中实现quartz的动态调度(开始、暂停、停止等)
     09-04
  • SpringQuartz定时任务的cron表达式书写
    09-17
  • 定时任务Quartz_之_cron表达式(时间表达式)
     07-18
  • 查看Quartz 调度任务 job 的状态
     02-07
  • Quartz-基础
     06-25
  • spring quartz 根据开始时间 结束时间 动态设置任务
     08-28
  • Quartz任务调度原理简析
     05-30
  • Quartz_Cron表达式_每周、每月执行一次
    09-04
  • 得到quartz中Job的执行状态
     11-09
  • quartz定时:修改时间及时生效的定时任务
    08-16
  • Quartz任务调度的Cron表达式
     09-30
  • cron表达式(Quartz中的使用)
     01-03
  • quartz_时间表达式之Cron表达式详解
     08-16
  • quartz中cron表达式
     10-25
  • quartz任务停止最佳实践方式
     03-06
  • Spring+Quartz 实现任务动态管理监控
     12-20
  • Quartz-中断正在执行的任务
     11-15
  • spring-boot+quartz的CRUD动态任务管理系统
     04-03
  • Quartz_Cron表达式(定时任务)
     05-11
  • java时间操作
     05-31
  • TimeUtil工具类
     12-04
  • 随机生成日期
     12-11
  • quartz2.x的动态管理类
     12-07
  • 去除节假日,周末,获取当月的工作日
     06-05
  • java_日期的操作汇总
     11-03
  • DateUtil
     06-06
  • cron表达式获取上次执行时间和下次执行时间
     12-28
  • POI导出excel表格优化
     10-15
  • java_时间处理
     12-04
  • JAVA获取某段时间内的所有日期
     10-11
  • 逐页缓存查询(串行,避免OOM)导出Excel,zip压缩
     07-31

Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)


本案例采用quartz-2.2.3.jar

入门案例,执行比较简单的任务

QuartzManager.java  (任务的管理)

  1.  
    import java.text.ParseException;
  2.  
    import java.text.SimpleDateFormat;
  3.  
    import java.util.ArrayList;
  4.  
    import java.util.Date;
  5.  
    import java.util.List;
  6.  
     
  7.  
    import org.quartz.CronScheduleBuilder;
  8.  
    import org.quartz.CronTrigger;
  9.  
    import org.quartz.JobBuilder;
  10.  
    import org.quartz.JobDetail;
  11.  
    import org.quartz.JobKey;
  12.  
    import org.quartz.Scheduler;
  13.  
    import org.quartz.SchedulerException;
  14.  
    import org.quartz.SchedulerFactory;
  15.  
    import org.quartz.Trigger;
  16.  
    import org.quartz.Trigger.TriggerState;
  17.  
    import org.quartz.TriggerBuilder;
  18.  
    import org.quartz.TriggerKey;
  19.  
    import org.quartz.TriggerUtils;
  20.  
    import org.quartz.impl.StdSchedulerFactory;
  21.  
    import org.quartz.impl.triggers.CronTriggerImpl;
  22.  
     
  23.  
    public class QuartzManager {
  24.  
     
  25.  
    private static SchedulerFactory gSchedulerFactory = new StdSchedulerFactory();
  26.  
    private static String JOB_GROUP_NAME = "MY_JOBGROUP_NAME";
  27.  
    private static String TRIGGER_GROUP_NAME = "MY_TRIGGERGROUP_NAME";
  28.  
     
  29.  
    /**
  30.  
    * @Description: 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
  31.  
    * @param jobName
  32.  
    * 任务名
  33.  
    * @param cls
  34.  
    * 任务
  35.  
    * @param time
  36.  
    * 时间设置,参考quartz说明文档
  37.  
    */
  38.  
    @SuppressWarnings({ "rawtypes", "unchecked" })
  39.  
    public static void addJob(String jobName, Class cls, String cron) {
  40.  
    try {
  41.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  42.  
    JobDetail job = JobBuilder.newJob(cls).withIdentity(jobName, JOB_GROUP_NAME).build();
  43.  
    // 表达式调度构建器
  44.  
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
  45.  
    // 按新的cronExpression表达式构建一个新的trigger
  46.  
    Trigger trigger = TriggerBuilder.newTrigger().withIdentity(jobName, TRIGGER_GROUP_NAME)
  47.  
    .withSchedule(scheduleBuilder).build();
  48.  
     
  49.  
    // 交给scheduler去调度
  50.  
    sched.scheduleJob(job, trigger);
  51.  
     
  52.  
    // 启动
  53.  
    if (!sched.isShutdown()) {
  54.  
    sched.start();
  55.  
    System.err.println( "添加任务:"+jobName);
  56.  
    }
  57.  
    } catch (Exception e) {
  58.  
    throw new RuntimeException(e);
  59.  
    }
  60.  
    }
  61.  
     
  62.  
    /**
  63.  
    * @Description: 添加一个定时任务
  64.  
    * @param jobName
  65.  
    * 任务名
  66.  
    * @param jobGroupName
  67.  
    * 任务组名
  68.  
    * @param triggerName
  69.  
    * 触发器名
  70.  
    * @param triggerGroupName
  71.  
    * 触发器组名
  72.  
    * @param jobClass
  73.  
    * 任务
  74.  
    * @param time
  75.  
    * 时间设置,参考quartz说明文档
  76.  
    */
  77.  
    @SuppressWarnings({ "rawtypes", "unchecked" })
  78.  
    public static void addJob(String jobName, String jobGroupName, String triggerName, String triggerGroupName,
  79.  
    Class jobClass, String cron) {
  80.  
    try {
  81.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  82.  
    JobDetail job = JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName).build();
  83.  
    // 表达式调度构建器
  84.  
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
  85.  
    // 按新的cronExpression表达式构建一个新的trigger
  86.  
    Trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName)
  87.  
    .withSchedule(scheduleBuilder).build();
  88.  
    sched.scheduleJob(job, trigger);
  89.  
    // 启动
  90.  
    if (!sched.isShutdown()) {
  91.  
    sched.start();
  92.  
    }
  93.  
    } catch (Exception e) {
  94.  
    throw new RuntimeException(e);
  95.  
    }
  96.  
    }
  97.  
     
  98.  
    /**
  99.  
    * @Description: 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
  100.  
    * @param jobName
  101.  
    * @param time
  102.  
    */
  103.  
    public static void modifyJobTime(String jobName, String cron) {
  104.  
    TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME);
  105.  
     
  106.  
    try {
  107.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  108.  
    CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey);
  109.  
    if (trigger == null) {
  110.  
    return;
  111.  
    }
  112.  
    String oldTime = trigger.getCronExpression();
  113.  
    if (!oldTime.equalsIgnoreCase(cron)) {
  114.  
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
  115.  
    // 按新的cronExpression表达式重新构建trigger
  116.  
    trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
  117.  
    // 按新的trigger重新设置job执行
  118.  
    sched.rescheduleJob(triggerKey, trigger);
  119.  
    }
  120.  
    } catch (Exception e) {
  121.  
    throw new RuntimeException(e);
  122.  
    }
  123.  
    }
  124.  
     
  125.  
     
  126.  
    /**
  127.  
    * @Description:修改任务,(可以修改任务名,任务类,触发时间)
  128.  
    * 原理:移除原来的任务,添加新的任务
  129.  
    * @param oldJobName :原任务名
  130.  
    * @param jobName
  131.  
    * @param jobclass
  132.  
    * @param cron
  133.  
    * @date 2018年5月23日 上午9:13:10
  134.  
    */
  135.  
    @SuppressWarnings({ "rawtypes", "unchecked" })
  136.  
    public static void modifyJob(String oldJobName, String jobName, Class jobclass, String cron) {
  137.  
    /*
  138.  
    * removeJob(oldJobName);
  139.  
    * addJob(jobName, jobclass, cron);
  140.  
    * System.err.println("修改任务"+oldJobName);
  141.  
    */
  142.  
    TriggerKey triggerKey = TriggerKey.triggerKey(oldJobName, TRIGGER_GROUP_NAME);
  143.  
    JobKey jobKey = JobKey.jobKey(oldJobName, JOB_GROUP_NAME);
  144.  
    try {
  145.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  146.  
    Trigger trigger = (Trigger) sched.getTrigger(triggerKey);
  147.  
    if (trigger == null) {
  148.  
    return;
  149.  
    }
  150.  
    sched.pauseTrigger(triggerKey); // 停止触发器
  151.  
    sched.unscheduleJob(triggerKey); // 移除触发器
  152.  
    sched.deleteJob(jobKey); // 删除任务
  153.  
    System.err.println( "移除任务:" + oldJobName);
  154.  
     
  155.  
    JobDetail job = JobBuilder.newJob(jobclass).withIdentity(jobName, JOB_GROUP_NAME).build();
  156.  
    // 表达式调度构建器
  157.  
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
  158.  
    // 按新的cronExpression表达式构建一个新的trigger
  159.  
    Trigger newTrigger = TriggerBuilder.newTrigger().withIdentity(jobName, TRIGGER_GROUP_NAME)
  160.  
    .withSchedule(scheduleBuilder).build();
  161.  
     
  162.  
    // 交给scheduler去调度
  163.  
    sched.scheduleJob(job, newTrigger);
  164.  
     
  165.  
    // 启动
  166.  
    if (!sched.isShutdown()) {
  167.  
    sched.start();
  168.  
    System.err.println( "添加新任务:" + jobName);
  169.  
    }
  170.  
    System.err.println( "修改任务【" + oldJobName + "】为:" + jobName);
  171.  
    } catch (Exception e) {
  172.  
    throw new RuntimeException(e);
  173.  
    }
  174.  
     
  175.  
    }
  176.  
     
  177.  
     
  178.  
    /**
  179.  
    * @Description: 修改一个任务的触发时间
  180.  
    * @param triggerName
  181.  
    * @param triggerGroupName
  182.  
    * @param time
  183.  
    */
  184.  
    public static void modifyJobTime(String triggerName, String triggerGroupName, String cron) {
  185.  
    TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroupName);
  186.  
    try {
  187.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  188.  
    CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey);
  189.  
    if (trigger == null) {
  190.  
    return;
  191.  
    }
  192.  
    String oldTime = trigger.getCronExpression();
  193.  
    if (!oldTime.equalsIgnoreCase(cron)) {
  194.  
    // trigger已存在,则更新相应的定时设置
  195.  
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
  196.  
    // 按新的cronExpression表达式重新构建trigger
  197.  
    trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
  198.  
    // 按新的trigger重新设置job执行
  199.  
    sched.resumeTrigger(triggerKey);
  200.  
    }
  201.  
    } catch (Exception e) {
  202.  
    throw new RuntimeException(e);
  203.  
    }
  204.  
    }
  205.  
     
  206.  
    /**
  207.  
    * @Description 移除一个任务(使用默认的任务组名,触发器名,触发器组名)
  208.  
    * @param jobName
  209.  
    */
  210.  
    public static void removeJob(String jobName) {
  211.  
    TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME);
  212.  
    JobKey jobKey = JobKey.jobKey(jobName, JOB_GROUP_NAME);
  213.  
    try {
  214.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  215.  
    Trigger trigger = (Trigger) sched.getTrigger(triggerKey);
  216.  
    if (trigger == null) {
  217.  
    return;
  218.  
    }
  219.  
    sched.pauseTrigger(triggerKey); // 停止触发器
  220.  
    sched.unscheduleJob(triggerKey); // 移除触发器
  221.  
    sched.deleteJob(jobKey); // 删除任务
  222.  
    System.err.println( "移除任务:"+jobName);
  223.  
    } catch (Exception e) {
  224.  
    throw new RuntimeException(e);
  225.  
    }
  226.  
    }
  227.  
     
  228.  
    /**
  229.  
    * @Description: 移除一个任务
  230.  
    * @param jobName
  231.  
    * @param jobGroupName
  232.  
    * @param triggerName
  233.  
    * @param triggerGroupName
  234.  
    */
  235.  
    public static void removeJob(String jobName, String jobGroupName, String triggerName, String triggerGroupName) {
  236.  
    TriggerKey triggerKey = TriggerKey.triggerKey(jobName, triggerGroupName);
  237.  
    JobKey jobKey = JobKey.jobKey(jobName, jobGroupName);
  238.  
    try {
  239.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  240.  
    sched.pauseTrigger(triggerKey); // 停止触发器
  241.  
    sched.unscheduleJob(triggerKey); // 移除触发器
  242.  
    sched.deleteJob(jobKey); // 删除任务
  243.  
    } catch (Exception e) {
  244.  
    throw new RuntimeException(e);
  245.  
    }
  246.  
    }
  247.  
     
  248.  
    /**
  249.  
    * @Description:暂停一个任务(使用默认组名)
  250.  
    * @param jobName
  251.  
    */
  252.  
    public static void pauseJob(String jobName) {
  253.  
    JobKey jobKey = JobKey.jobKey(jobName, JOB_GROUP_NAME);
  254.  
    try {
  255.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  256.  
    sched.pauseJob(jobKey);
  257.  
    } catch (SchedulerException e) {
  258.  
    e.printStackTrace();
  259.  
    }
  260.  
    }
  261.  
     
  262.  
    /**
  263.  
    * @Description:暂停一个任务
  264.  
    * @param jobName
  265.  
    * @param jobGroupName
  266.  
    */
  267.  
    public static void pauseJob(String jobName, String jobGroupName) {
  268.  
    JobKey jobKey = JobKey.jobKey(jobName, jobGroupName);
  269.  
    try {
  270.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  271.  
    sched.pauseJob(jobKey);
  272.  
    } catch (SchedulerException e) {
  273.  
    e.printStackTrace();
  274.  
    }
  275.  
    }
  276.  
     
  277.  
    /**
  278.  
    * @Description:恢复一个任务(使用默认组名)
  279.  
    * @param jobName
  280.  
    */
  281.  
    public static void resumeJob(String jobName) {
  282.  
    JobKey jobKey = JobKey.jobKey(jobName, JOB_GROUP_NAME);
  283.  
    try {
  284.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  285.  
    sched.resumeJob(jobKey);
  286.  
    } catch (SchedulerException e) {
  287.  
    e.printStackTrace();
  288.  
    }
  289.  
    }
  290.  
     
  291.  
    /**
  292.  
    * @Description:恢复一个任务
  293.  
    * @param jobName
  294.  
    * @param jobGroupName
  295.  
    * @date 2018年5月17日 上午9:56:09
  296.  
    */
  297.  
    public static void resumeJob(String jobName, String jobGroupName) {
  298.  
    JobKey jobKey = JobKey.jobKey(jobName, jobGroupName);
  299.  
    try {
  300.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  301.  
    sched.resumeJob(jobKey);
  302.  
    } catch (SchedulerException e) {
  303.  
    e.printStackTrace();
  304.  
    }
  305.  
    }
  306.  
     
  307.  
    /**
  308.  
    * @Description:启动所有定时任务
  309.  
    */
  310.  
    public static void startJobs() {
  311.  
    try {
  312.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  313.  
    sched.start();
  314.  
    } catch (Exception e) {
  315.  
    throw new RuntimeException(e);
  316.  
    }
  317.  
    }
  318.  
     
  319.  
    /**
  320.  
    * @Description 关闭所有定时任务
  321.  
    */
  322.  
    public static void shutdownJobs() {
  323.  
    try {
  324.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  325.  
    if (!sched.isShutdown()) {
  326.  
    sched.shutdown();
  327.  
    }
  328.  
         } catch (Exception e) {
  329.  
    throw new RuntimeException(e);
  330.  
    }
  331.  
    }
  332.  
     
  333.  
    /**
  334.  
    * @Description: 立即运行任务,这里的立即运行,只会运行一次,方便测试时用。
  335.  
    * @param jobName
  336.  
    * @param jobGroupName
  337.  
    * @date 2018年5月17日 上午10:03:26
  338.  
    */
  339.  
    public static void triggerJob(String jobName) {
  340.  
    JobKey jobKey = JobKey.jobKey(jobName, JOB_GROUP_NAME);
  341.  
    try {
  342.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  343.  
    sched.triggerJob(jobKey);
  344.  
    } catch (SchedulerException e) {
  345.  
    e.printStackTrace();
  346.  
    }
  347.  
    }
  348.  
     
  349.  
    /**
  350.  
    * @Description: 立即运行任务,这里的立即运行,只会运行一次,方便测试时用。
  351.  
    * @param jobName
  352.  
    * @param jobGroupName
  353.  
    * @date 2018年5月17日 上午10:03:26
  354.  
    */
  355.  
    public static void triggerJob(String jobName, String jobGroupName) {
  356.  
    JobKey jobKey = JobKey.jobKey(jobName, jobGroupName);
  357.  
    try {
  358.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  359.  
    sched.triggerJob(jobKey);
  360.  
    } catch (SchedulerException e) {
  361.  
    e.printStackTrace();
  362.  
    }
  363.  
    }
  364.  
     
  365.  
    /**
  366.  
    * @Description: 获取任务状态
  367.  
    * NONE: 不存在
  368.  
    * NORMAL: 正常
  369.  
    * PAUSED: 暂停
  370.  
    * COMPLETE:完成
  371.  
    * ERROR : 错误
  372.  
    * BLOCKED : 阻塞
  373.  
    * @param jobName 触发器名
  374.  
    * @date 2018年5月21日 下午2:13:45
  375.  
    */
  376.  
    public static String getTriggerState(String jobName){
  377.  
    TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME);
  378.  
    String name = null;
  379.  
    try {
  380.  
    Scheduler sched = gSchedulerFactory.getScheduler();
  381.  
    TriggerState triggerState = sched.getTriggerState(triggerKey);
  382.  
    name = triggerState.name();
  383.  
    } catch (SchedulerException e) {
  384.  
    e.printStackTrace();
  385.  
    }
  386.  
    return name;
  387.  
    }
  388.  
     
  389.  
    /**
  390.  
    * @Description:获取最近8次执行时间
  391.  
    * @param cron
  392.  
    * @date 2018年5月24日 下午5:13:03
  393.  
    */
  394.  
    public static List getRecentTriggerTime(String cron) {
  395.  
    List list = new ArrayList();
  396.  
    try {
  397.  
    CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();
  398.  
    cronTriggerImpl.setCronExpression(cron);
  399.  
    // 这个是重点,一行代码搞定
  400.  
    List dates = TriggerUtils.computeFireTimes(cronTriggerImpl, null, 8);
  401.  
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  402.  
    for (Date date : dates) {
  403.  
    list.add(dateFormat.format(date));
  404.  
    }
  405.  
     
  406.  
    } catch (ParseException e) {
  407.  
    e.printStackTrace();
  408.  
    }
  409.  
    return list;
  410.  
    }
  411.  
     
  412.  
    }

MyJob.java  执行的任务

  1.  
     
  2.  
    import java.text.SimpleDateFormat;
  3.  
    import java.util.Calendar;
  4.  
     
  5.  
    import org.quartz.Job;
  6.  
    import org.quartz.JobExecutionContext;
  7.  
    import org.quartz.JobExecutionException;
  8.  
     
  9.  
    /**
  10.  
    * @Description:
  11.  
    * @date 2018年5月16日
  12.  
    */
  13.  
    public class MyJob implements Job {
  14.  
     
  15.  
    @Override
  16.  
    public void execute(JobExecutionContext context) throws JobExecutionException {
  17.  
     
  18.  
    System.err.println( "任务运行开始-------- start --------");
  19.  
    try {
  20.  
    String jobName = context.getJobDetail().getKey().getName();
  21.  
    String jobGroup = context.getJobDetail().getKey().getGroup();
  22.  
    String triggerName = context.getTrigger().getKey().getName();
  23.  
    String triggerGroup = context.getTrigger().getKey().getGroup();
  24.  
     
  25.  
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
  26.  
    System.err.println( "触发器Key:" + triggerName + ".." + triggerGroup + " 正在执行...");
  27.  
    System.err.println( "任务Key:" + jobName + ".." + jobGroup + " 正在执行,执行时间: "
  28.  
    + dateFormat.format(Calendar.getInstance().getTime()));
  29.  
     
  30.  
    } catch (Exception e) {
  31.  
    System.err.println( "捕获异常==="+e);
  32.  
    }
  33.  
    System.err.println( "任务运行结束-------- end --------");
  34.  
    }
  35.  
     
  36.  
    }

测试类 LoadTask.java

  1.  
     
  2.  
    public class LoadTask {
  3.  
     
  4.  
    public static void main(String[] args) {
  5.  
    System.err.println( "【系统启动】");
  6.  
    String corn = "0/5 * * * * ?";
  7.  
    //QuartzManager.addJob("job1", "jobGooup", "trigger1", "triggerGroup", MyJob.class, corn);
  8.  
    QuartzManager.addJob( "job1", MyJob.class, corn);
  9.  
    System.err.println( "添加任务一");
  10.  
    QuartzManager.getTriggerState( "jobs");
  11.  
     
  12.  
    //睡眠一分钟
  13.  
    try {
  14.  
    Thread.sleep( 60L * 1000L);
  15.  
    } catch (InterruptedException e) {
  16.  
    e.printStackTrace();
  17.  
    }
  18.  
     
  19.  
     
  20.  
    QuartzManager.modifyJobTime( "job1", "0/3 * * * * ?");
  21.  
    System.out.println( "修改触发时间");
  22.  
     
  23.  
    try {
  24.  
    Thread.sleep( 15L * 1000L);
  25.  
    } catch (InterruptedException e) {
  26.  
    e.printStackTrace();
  27.  
    }
  28.  
     
  29.  
    QuartzManager.removeJob( "job1");
  30.  
    //QuartzManager.removeJob("job1", "jobGooup", "trigger1", "triggerGroup");
  31.  
    System.out.println( "删除任务");
  32.  
     
  33.  
    try {
  34.  
    Thread.sleep( 5L * 1000L);
  35.  
    } catch (InterruptedException e) {
  36.  
    e.printStackTrace();
  37.  
    }
  38.  
     
  39.  
    System.out.println( "【添加定时任务】");
  40.  
    QuartzManager.addJob( "job1", MyJob.class, corn);
  41.  
    //QuartzManager.shutdownJobs();
  42.  
    //System.out.println("停止所有任务");
  43.  
    try {
  44.  
    Thread.sleep( 5L * 1000L);
  45.  
    } catch (InterruptedException e) {
  46.  
    e.printStackTrace();
  47.  
    }
  48.  
     
  49.  
    System.out.println( "【暂停定时任务】");
  50.  
    QuartzManager.pauseJob( "job1");
  51.  
    System.out.println( "【立即运行一次】");
  52.  
    QuartzManager.triggerJob( "job1");
  53.  
    try {
  54.  
    Thread.sleep( 5L * 1000L);
  55.  
    } catch (InterruptedException e) {
  56.  
    e.printStackTrace();
  57.  
    }
  58.  
     
  59.  
    System.out.println( "【恢复定时任务】");
  60.  
    QuartzManager.resumeJob( "job1");
  61.  
    try {
  62.  
    Thread.sleep( 5L * 1000L);
  63.  
    } catch (InterruptedException e) {
  64.  
    e.printStackTrace();
  65.  
    }
  66.  
     
  67.  
    QuartzManager.shutdownJobs();
  68.  
    }
  69.  
    }
  •  

    1

     
  •  

    1

     
  •  收藏  
  •   分享
  • 下一篇

Quartz2实现任务的临时启动/暂停/恢复

6052

在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。      Java代码  package c...来自: zmx729618

  • qq_42617840
    溪雪:  你好,请问任务状态为什么会一直处在“不存在”的状态呢?(任务名和TRIGGER_GROUP_NAME没问题)(1个月前#1楼)
    0

Quartz-中断正在执行的任务

阅读数 7131

概述示例示例源码概述由于业务需要,停止Quartz中正在执行的任务任务类只需要实现InterruptableJob类,然后实现interrupt()方法。在这个方法中进行标记的改变,在执行中进行这个标...博文来自: 小工匠

quartz任务停止最佳实践方式

阅读数 345

ThebestwaytoknowforsureistosendaSIGQUIT(kill-3)programandanalyzetheoutputtoseewhichthreadisstillrunn...博文来自: 一名普通码农的菜地

以代码的方式管理quartz定时任务的暂停、重启、删除、添加等

阅读数 106

   【前言】在项目的管理功能中,对定时任务的管理有时会很常见。因为我们不能指望只在配置文件中配置好定时任务就行了,因为如果要控制定时任务的“暂停”呢?暂停之后又要在某个时间点“重启”该定时任务呢?或...博文来自: Try My Best 尽力而为

Quartz调度、终止执行的任务

08-07
使用Quartz调度任务,根据需要人为的终止某个任务,适用于很多常见的场景
下载

java quartz 停止正在进行的任务解决方案

阅读数 5474

新建的Job实现InterruptableJob,在Job中实现interrupt()方法。如下: publicabstractclassTestJobimplementsInterruptableJ...博文来自: 就要嗨翻天

对于quartz定时任务设置结束时间

阅读数 993

在使用quartz时,使用cornTrigger再设置一个结束时间endAt(“结束的时间”),实现在任务执后自动销毁任务,在到了结束时间之后,job并不会留在内存中,job是直接被delete掉,所...博文来自: qq_37461349的博客

Quartz的任务的临时启动和暂停和恢复

阅读数 1898

在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。      Java代码  package c...博文来自: Golden_lion的博客

quartz定时任务执行一段时间停止了

09-01

-问答

原来除皮肤瘙痒这么简单?只有1%人知道的方法谷丰健康 · 猎媒

Spring+Quartz定时器使用方法(任务的添加删除修改暂停..._CSDN博客

11-2

Spring 内置了quartz框架,可以对方法上注解或者在配置文件里配置定时任务。但是如果...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) 05-25 395...

quartz 定时任务的删除 恢复 已经暂停 - taizhen/blog - CSDN博客

4-10

在动态添加定时任务中其实已经涉及到了其中的一些代码,这里我们再来细化的理一理...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) 05-25 阅读...

quartz 定时器的动态加载和取消定时任务

阅读数 2518

importjava.io.IOException;importjava.text.ParseException;importorg.quartz.CronTrigger;importorg.quar...博文来自: aa_moon的专栏

java系统中使用调度器Quartz实现对正在执行任务的停止

阅读数 1万+

最近在进行数据迁移的任务(就是迁移历史数据),数据量很大,需要运行几个月才能运行完。要求是每天的非工作时间定时进行迁移,正常上班的时间自动停止。自然就想到了使用Quartz来执行定时任务。每天定时的启...博文来自: ykp的专栏

quartz配置动态任务,从数据库读取相应的类及方法,执行..._CSDN博客

11-23

步骤:首先创建一个javabean---》创建Quartz工厂---》xmlSchedulerFactoryBean--...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) - loveLifeLove...

...Scheduler (Quartz) 动态添加,删除,修改任务的例子 ..._CSDN博客

10-30

标签:schdule quartz 定时任务 要求 根据任务清单执行不定数量,不定频率的定时任务。并且需要动态添加,删除,修改任务。 代码 public class JobExample { public ...

使用Spring Quartz做自动任务 启动和关闭

阅读数 1万+

因开发需要做一个队自动任务的开关,网上的搜索的结果都不是很满意,考虑到spring本身使用的是单例模式,所以在springMVC中开发是最适合的。/** *启动、关闭自动通过 *@authoryang...博文来自: 九天工作室

Spring3整合Quartz2实现定时任务及动态任务调整(添加删..._CSDN博客

10-26

最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) 05-25 345...

SpringBoot整合Quartz之动态控制任务(暂停,启动,修改执..._CSDN博客

4-10

SpringBoot整合 Quartz 篇请移步 https://blog.csdn.net/yali_aini/article...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) 05-25 阅读...

quartz在job间隔期间内,保证上一个任务执行完后,再去执行下一个任务

阅读数 1万+

假设,我们有个job,每2分钟执行一次,但是job本身就要执行5分钟,这个时候,quartz默认设置是并发的,所以它又会开一个线程来执行。这样往往会导致我们执行的数据不正确。解决办法:1、要是是和sp...博文来自: 山鬼谣的专栏

Quartz之手动启动和关闭定时器简单示例

阅读数 1万+

开心一笑考路考那天,上午有个驾校带来的15个人全军覆没了,原因是有个女孩子很紧张,路考车上,监考教官看她一直发抖,心生怜悯安慰她:“小姑娘,你别怕,我又不吃人。”这女孩子转过头笑着说:“没事,我不怕,...博文来自: 阿毅

任务调度开源框架Quartz动态添加、修改和删除定时任务 ..._CSDN博客

11-18

         Quartz 是个开源的作业调度框架,为在 Java 应用...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) - loveLifeLo...

Quartz1.7 动态添加、修改和删除定时任务(非spring集成..._CSDN博客

11-23

Quartz是一个由James House创立的开源项目,是一个功能强大的作业调度工具,可以计划...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) - loveLifeLo...

晚上白开水+它,胖到160斤都能瘦,后悔没早知道道群 · 猎媒

任务调度开源框架Quartz动态添加、修改和删除定时任务

阅读数 5万+

Quartz是个开源的作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和...博文来自: Joyce Luo的专栏

关于quartz暂停恢复后,job执行多次的异常情况 - u01375..._CSDN博客

11-24

我的quartzjob使用的是jdbcstore方式。我需要设置我的job可以实现故障恢复,又因为...Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间) - loveLifeLove...

spring+quartz新增,删除,暂停,恢复定时任务

阅读数 6780

spring配置 启动服务器后延迟启动定时任务-->先定义SchedulerJob javabeanpublicclassScheduleJob{ privateStringjobId;...博文来自: a3781386的博客

quartz 暂停后重新启动,在暂停时 被暂停后的任务,在启动后会补偿执行即 会连续多次调用job中的execute方法。

阅读数 9795

调度(scheduleJob)或恢复调度(resumeTrigger,resumeJob)后不同的misfire对应的处理规则CronTrigger withMisfireHandlingInstru...博文来自: rabbit0708的专栏

quartz 定时任务的删除 恢复 已经暂停

阅读数 5225

在动态添加定时任务中其实已经涉及到了其中的一些代码,这里我们再来细化的理一理。先来看一下我们初步要实现的目标效果图,这里我们只在内存中操作,并没有把quartz的任何信息保存到数据库,即使用的是RAM...博文来自: taizhen/blog

Spring+Quartz定时器使用方法(任务的添加删除修改暂停恢复)

阅读数 1063

1.前言Spring内置了quartz框架,可以对方法上注解或者在配置文件里配置定时任务。但是如果需要对这些任务进行管理(增删该查)的话不知道能不能做,反正我这渣渣是不知道的,所有我就自己整合了Qua...博文来自: keisunique

白开水+它,喝完排出 巨便 !大肚子没了裕华 · 猎媒

Quartz的简化(只要一张表,动态启停任务)

阅读数 2763

spring-quartz,一张表配置、动态启停Job博文来自: 蒲公英的约定

Spring Quartz 动态暂停、恢复、修改定时任务

01-06
Spring Quartz 动态暂停、恢复、修改定时任务的一个demo,使用maven构建,框架采用spring springmvc jpa,数据库mysql,含数据库脚本,运行可用,页面访问地址ht
下载

Spring3整合Quartz2实现定时任务及动态任务调整(添加删除暂停恢复)--推荐

阅读数 3946

1、常规整合http://www.dexcoder.com/selfly/article/308最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功...博文来自: 零度的博客专栏

查看Quartz 调度任务 job 的状态

阅读数 3112

首先明确一点什么是jobkeyJobKeyjobkey=newJobKey(name,group)jobkey相当于一把钥匙连接所有从schedule中获取信息的钥匙如果想获取初始化信息则schedu...博文来自: success could be revenge的博客

得到quartz中Job的执行状态

阅读数 6906

StdSchedulerFactoryschedulerFactory=newStdSchedulerFactory();Schedulerscheduler=schedulerFactory.get...博文来自: dqswuyundong的专栏

肚子胖的像怀孕?白开水+它,1天瘦2斤!想胖都难宁龙商贸 · 猎媒

Spring+Quartz 实现任务动态管理监控

阅读数 3130

Spring+Quartz实现任务动态管理监控环境:Quartz2.2.3+Spring4.0配置文件很简单,只需要一个配置就可以了,注入一个FactoryBean.<!--任务工厂,注...博文来自: 听半的曲的博客

quartz 获取正在执行的任务

阅读数 5038

最近在搞quartz,用来做定时任务。如果有job任务正在执行的时候可以使用scheduler.getCurrentlyExecutingJobs()这个方法的时候,获得一个List,根据你要获取得任...博文来自: qq_39050876的博客

Quartz任务监控管理

阅读数 156

Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务等。对于动态增加任务,可以参加我的前一篇文章《Quartz如何在S...博文来自: 曾文锋开发日志

Quartz——有状态的job和无状态的job

阅读数 9373

如果使用了Quartz,当然在一个系统中绝不仅仅是一个job那么简单,如果同一个job同一时刻运行,可能会造成重复入库的情况。所以我们希望多线程时,能够控制同一时刻相同job只能有一个正在执行。   ...博文来自: 许小乖……是总攻

获取Quartz中Job的执行状态

阅读数 1万+

StdSchedulerFactoryschedulerFactory=newStdSchedulerFactory();Schedulerscheduler=schedulerFactory.get...博文来自: wangshuang1631的博客

Quartz+Spring 实现任务监控

阅读数 9477

Quartz是一个优秀的任务调度框架,完全基于Java实现,功能强大,易于集成,最近在写了一个小项目,算是对之前接触到的技术做一个总结吧,在这个项目中使用Quartz实现对任务的监控...博文来自: 想成为工程师的码农

Quartz任务监控管理

阅读数 4150

http://sundoctor.iteye.com/blog/441951?page=3Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任...博文来自: wangshfa的专栏

作业调度框架 Quartz 学习笔记(四) -- 接收参数和维护状态

阅读数 2万+

>如果你想在某个job执行的时候传入参数,参数在job执行过程中对参数有所修改,并且在job执行完毕后把参数返回那么你需要学习一下现在的这个例子了,因为它正是你所想要的...... 我的建议是先把代码...博文来自: 无他, 但手熟尔

Quartz 2.2 的实现原理和运行过程固定时间后删除任务

阅读数 2127

Quartz2.2的实现原理和运行过程一、Quartz的几个概念类这几个概念类,是我们调用Quartz任务调度的基础。了解清楚之后,我们再来看一下如何去启动和关闭一个Quartz调度程序。1、org....博文来自: u010357298的博客

quartz 对于有状态的任务处理

阅读数 622

quartz的有状态的JOB始终只有一个任务在运行,不会出现同一个JOB并发的情况,quartz执行一个JOB时,会判断该JOB是不是有状态的,如果是有状态的,则把给JOB从存储JOB的列表中移除,保...博文来自: dream8062的专栏

quartz监控

阅读数 784

http://www.iteye.com/topic/441951Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务...博文来自: dream8062的专栏

quartz不正常执行.执行一段时间后无故停止

阅读数 470

 1、看看线程池数量配置的够不够,如果不够,在某些任务执行时间超过预期,可能会造成其他任务排队。2、升级到最新的GA版本,老版本确实是有问题。 可能是资源耗尽,比如数据库连接、线程池线程等,导致最后一...博文来自: fengbin2005

Quartz动态添加、修改和删除定时任务时间的方法以及日期转换cron表达式时间格式工具类

阅读数 9435

QuartzCronDateUtils博文来自: dengyu的专栏

quartz定时:修改时间及时生效的定时任务

阅读数 1350

Quartz1.x的用法如下,下方有2.x的大致用法,使用quartz定时任务在服务重启后会失效,如果想要任务不消失的定时任务,参照我的另一篇博客:spring定时:动态设置定时任务 。maven配置...博文来自: qq_39071530的博客

在spring中实现quartz的动态调度(开始、暂停、停止等)

阅读数 1517

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/fantasic_van/article/details/74942062需求:需要在页面设定某个时间,...博文来自: xiang__liu的博客

码农必看:各大平台的推荐系统原来是靠它完成的,太牛了

第四范式先荐帮助客户从0到1搭建推荐系统,显著提升用户活跃,留存,观看时长等重要业务指标

在spring中实现quartz2.2.1的动态调度(开始、暂停、停止等)

阅读数 4463

需求:需要在页面设定某个时间,然后点击按钮后,执行某个调度,并且可以在页面删除某个调度1、导包org.quartz-schedulerquartz2.2.1...博文来自: fantasic_van的博客

quartz暂停及恢复任务解决恢复时一咕噜把未执行的全补回来的问题

阅读数 83

网上文章都说了pauseTriggerresumeTrigger神马的暂停恢复任务但是这样设了之后,在恢复的时候会把暂停期间没执行的任务又TM给补上了,很多人便说了,这TM不是我想要的啊!你想要的是神...博文来自: jdkleo的专栏

Quartz 2.2 动态添加、修改和删除定时任务

阅读数 3万+

Quartz2.2的实现原理和运行过程,请阅读我的另一篇文章:http://blog.csdn.net/xlxxcc/article/details/52104463下面直接上代码:QuartzMan...博文来自: xlxxcc的专栏

Cron+Trigger+Quartz 任务 启动 暂停 恢复 修改 实例

阅读数 554

packagecom.xxl.job.admin.core.schedule;importcom.xxl.job.admin.core.jobbean.RemoteHttpJobBean;import...博文来自: z69183787的专栏

使用quartz实现任务动态设置,从数据库获取配置时间

阅读数 1148

Spring+quartz2.2.3  xml配置xml文件 <?xmlversion="1.0"encoding="GBK"?>&...博文来自: xcc_2269861428的博客

如何快速提升个性化推荐效果?

先荐推荐系统适合首页,信息流,内容详情页等场景,支持网页, APP,小程序,快应用,1分钟安装5分钟上线,支持人工干预推荐

Quartz.net 动态调整任务的调度时间

阅读数 410

   执行作业可以有很多种法子,1.MSSqlServer提供了作业,可以自己创建作业来运行。2.Windows系统的计划任务。3.Timer计时器。4.Quartz.NET    但是这些基本都是提...博文来自: 星辉Johnson的博客

quartz当机器挂掉重启后定时任务后执行的策略

阅读数 8516

quartz,java世界里面的任务管理容器。至于为什么会有misfire这个概念,我想可以重这三个方面来进行说明:1所有的线程都在忙于更高优先级的任务2任务本身CRASH了3代码的BUG,导置错误的...博文来自: 啊大海全是水的博客

quartz的Scheduler 动态增加、修改、删除定时任务的方法

阅读数 122

变态的PM需求。虽然看上去很简单。但网上资源其实不多,走了不少弯路。分享一下。 quartz的Scheduler的主要代码 publicvoidaddSchduleJob(Taskentity)thr...博文来自: 无事忙

Quartz+Spring Boot实现动态管理定时任务

阅读数 7232

在实践中遇到动态管理定时任务的需求,场景通常是动态添加、更新、删除任务,借助Quartz,可方便实现功能。以下使用Quartz结合SpringBoot方式使用。POM依赖<par...博文来自: wang704987562的博客

spring-boot+quartz的CRUD动态任务管理系统

阅读数 1247

spring-boot-quartz基于spring-boot+quartz的CRUD动态任务管理系统,适用于中小项目。开发环境JDK1.7、Maven、Eclipse技术栈SpringBoot1.5...博文来自: 小柒2012的专栏

第四范式发布先荐推荐系统,帮助300+媒体平台实现内容升级

先荐推荐系统由国际顶尖智能推荐团队研发,三步即可完成接入,毫秒级数据更新,支持PC,WAP, APP全平台接入

Quartz动态管理任务

阅读数 53

 Quartz是一个纯Java实现的作业调度工具,其中Spring也整合了Quartz.关于Quartz动态的添加任务:1.配置Scheduler :获得默认的Scheduler实例Scheduler...博文来自: 小强博客

单机最大的TCP连接数及其修改

阅读数 1万+

单机最大的TCP连接数及其修改 一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535” .    65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP的...博文来自: 田发江的专栏

caffe下fcn数据集制作的简化

阅读数 8741

前面一直跑caffe下的fcn,同时上一篇博客,也说明了关于fcn的数据集的制作。但是过程还是显的很复杂,因为我们都是模仿作者的数据集而作,而作者为了完成多任务,数据集制作的略显复杂,比如还需用到.m...博文来自: supe_king的博客

避免 Hibernate 中用get/load方法获取的实体调用set方法后自动更新

阅读数 1万+

1、问题症状描述       最近在处理一个新需求问题,代码的大致逻辑是获取一个实体对象,调用该对象的set方法设置其中的某些字段,然后把修改后的实体作为参数供其他地方调用,根据返回值来决定是否更新这...博文来自: Mr_Alex

【深度剖析HMM(附Python代码)】1.前言及隐马尔科夫链HMM的背景

阅读数 1万+

1. 前言 隐马尔科夫HMM模型是一类重要的机器学习方法,其主要用于序列数据的分析,广泛应用于语音识别、文本翻译、序列预测、中文分词等多个领域。虽然近年来,由于RNN等深度学习方法的发展,HMM模型...博文来自: tostq的专栏

C语言实现图的最短路径Floyd算法

阅读数 716

Floyd算法直接使用二维数组求出所有顶点到所有顶点的最短路径。 D代表顶点到顶点的最短路径权值和的矩阵。 P代表对应顶点的最小路径的前驱矩阵。 以下程序在DEV C++中调试运行通过。 #inclu...博文来自: KittyGirl

ThreadLocal的设计理念与作用

阅读数 6万+

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...博文来自: u011860731的专栏

hive初次使用报错

阅读数 4098

hive(元数据存储在mysql) 启动 Exception in thread "main" java.lang.RuntimeException: Hive metastore database...博文来自: diudiu2025的博客

Docker下实战zabbix三部曲之一:极速体验

阅读数 1万+

用docker来缩减搭建时间,让读者们尽快投入zabbix系统的体验和实践博文来自: boling_cavalry的博客

【HTTP】Fiddler(一) - Fiddler简介

阅读数 30万+

1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包...博文来自: 专注、专心

DirectX修复工具增强版

阅读数 193万+

最后更新:2018-12-20 DirectX修复工具最新版:DirectX Repair V3.8 增强版  NEW! 版本号:V3.8.0.11638 大小: 107MB/7z格式压缩,18...博文来自: VBcom的专栏

python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)

阅读数 6万+

1.从pyCharm提示下载PIL包  http://www.pythonware.com/products/pil/   2.解压后,进入到目录下 cd /Users/jianan/Dow...博文来自: 专注于cocos+unity+服务器全栈

【小程序】微信小程序开发实践

阅读数 26万+

帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自: 小雨同学的技术博客

Qt的Signal和Slot机制(二)

阅读数 1万+

第二节 Signal和Slot的粘合剂 如果要连接一个Signal和Slot我们会用connect函数,下面我们就看一下connect是如何把Signal和Slot粘合在一起的。 以下是conn...博文来自: SuperFPE的专栏

WSAEventSelect模型编程 详解

阅读数 9328

WSAEventSelect模型编程      WSAEventSelect模型编程 这个模型是一个简单的异步事件模型,使用起来比较方便,现在说一下其的具体的用法和需要注意的地方。...博文来自: wangjieest的专栏

装饰设计——开放拓展,关闭修改

阅读数 282

1. 设计原则遵循开闭原则:对拓展开放,对修改关闭。2. 特点:1、装饰对象和真实对象有相同的接口。 2、装饰对象包含一个真实对象的引用。3. 优缺点优点:动态的给一个对象添加一些额外的职责,就扩展...博文来自: Sloven

人脸检测工具face_recognition的安装与应用

阅读数 5万+

人脸检测工具face_recognition的安装与应用博文来自: roguesir的博客

编写基于Qt的GLSL程序需要注意的几点

阅读数 5543

最近尝试着编写基于Qt和GLSL的小例子,遇到了一些小问题,在这里给大家分享一下,希望大家不要重蹈覆辙。...博文来自: 开发游戏,辉煌全中国

高斯混合模型(GMM)及其EM算法的理解

阅读数 10万+

一个例子高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一...博文来自: 小平子的专栏

linux上安装Docker(非常简单的安装方法)

阅读数 20万+

最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量...博文来自: 我走小路的博客

Java断点续传实现原理很简单

阅读数 1万+

原理解析在开发当中,“断点续传”这种功能很实用和常见,听上去也是比较有“逼格”的感觉。所以通常我们都有兴趣去研究研究这种功能是如何实现的? 以Java来说,网络上也能找到不少关于实现类似功能的资料...博文来自: LaterEqualsNever

fragment清除页面数据(重新加载布局)

阅读数 1万+

上一篇博客介绍了如何解决Fragment重叠的问题,有需要的同学可以看一下,底部有demo下载。 直通车:完美解决Fragment重叠本篇博客我们来说一下怎么让fragment重新加载布局资源文件。...博文来自: 喻志强的博客

IDEA 中 如何通过数据库表生成带注解的实体类

阅读数 1621

Springboot搭建后台项目中,对DB的操作一般会用到JPA,怎么将数据库中的表生成对应的实体类呢?下面的教程记录了详细的操作步骤:转载记录下来,       http://blog.csdn....博文来自: wusd1256的专栏

bash:权限不够

阅读数 1345

解决办法:http://blog.csdn.net/christprince007/article/details/38339485 如何查看文件的权限: https://zhidao.bai...博文来自: lielieyu的博客

图像缩放双线性插值算法

阅读数 2万+

插值算法对于缩放比例较小的情况是完全可以接受的,令人信服的。一般的,缩小0.5倍以上或放大3.0倍以下,对任何图像都是可以接受的。最邻近插值(近邻取样法):  最临近插值的的思想很简单。对于通过反向变...博文

强连通分量及缩点tarjan算法解析

阅读数 57万+

强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自: 九野的博客

jquery/js实现一个网页同时调用多个倒计时(最新的)

阅读数 44万+

jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自: Websites

三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一

阅读数 1万+

阅读内容为:FX系列微型可编程控制器用户手册(通讯篇)中计算机链接功能章节。 采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。 编写一应用程...博文来自: pengjc2001的博客

关于SpringBoot bean无法注入的问题(与文件包位置有关)

阅读数 17万+

问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统...博文来自: 开发随笔

Qt5.9编译MQTT错误解决办法

阅读数 2710

本文主要总结Qt5.9在编译MQTT3.1时,遇到的问题和对应的解决办法。 一、我用上述的编译环境构建时,出现了如下错误: D:\1Project\Qt5project\qmqtt-master\sr...博文来自: 净无邪博客

vs2015一键卸载所有组件工具,彻底卸载干净。

阅读数 12万+

1.手动卸载VS主体 2.下载工具并解压 下载地址:https://pan.baidu.com/s/1eSHRYxW 3.管理员运行,并输入Y(yes),等待卸载完成。...博文来自: a359877454的博客

SNMP协议详解<二>

阅读数 12万+

上一篇文章讲解了SNMP的基本架构,本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别! 四、SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Age...博文来自: 假装在纽约

设计制作学习  机器学习教程  Objective-C培训  交互设计视频教程  颜色模型
ios 动态修改约束  ios获取idfa  server的安全控制模型是什么 sql  android title搜索  java学习任务  nlp基础任务
关注
原创
38
粉丝
4
喜欢
8
评论
3
等级:
访问:
2万+
积分:
581
排名:
11万+
勋章:
 

最新文章

  • cxf版本与jdk版本关系
  • 用cxf在wsdl文档接口信息中添加注释
  • 简单的bat文件实现自动导库
  • Excel拼接单元格内容
  • 观察者设计模式

个人分类

  • Oracle3篇
  • Extjs4.21篇
  • 加密3篇
  • webService1篇
  • nginx1篇
  • 设计模式1篇
  • bat1篇

展开

归档

  • 2019年4月4篇
  • 2019年3月9篇
  • 2019年2月1篇
  • 2019年1月3篇
  • 2018年12月5篇
  • 2018年11月4篇
  • 2018年7月3篇
  • 2018年5月6篇
  • 2018年4月2篇
  • 2018年3月6篇
  • 2018年2月3篇

展开

热门文章

  • sql查询数据库时间最新的一条记录

    阅读数 6539

  • 前端js拼接Json串

    阅读数 4139

  • Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)

    阅读数 2187

  • 根据Quartz-Cron表达式获取最近几次执行时间

    阅读数 1751

  • 递归获取菜单树返回json

    阅读数 1000

最新评论

  • Quartz动态添加,修改,删除任...

    qq_42617840:你好,请问任务状态为什么会一直处在“不存在”的状态呢?(任务名和TRIGGER_GROUP_NAME没问题)

  • sql查询数据库时间最新的一条记录

    qq_25073223:mssql sqlserver 建议使用这个 “https://www.cnblogs.com/lairui1232000/articles/10388437.html” [code=sql]SELECT * from tablename where 时间=(select max(时间) from tablename) ---这一个代码,可能会出现两条记录哦! [/code]

  • Oracle查询表里重复数据

    liuzhixiong_521:作者深度好文,深受感慨!

Python岗薪资对比
BAT的AI岗能力测试
Python21天通关学
15天共读深度学习
区块链新趋势解析
登录
注册
 

转载于:https://www.cnblogs.com/leigepython/p/10731998.html

你可能感兴趣的:(Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间))