目前我有用java自带的ScheduledExecutorService线程任务做定时调度功能,我开启了足够多的线程数,比如开了300,实际上用到的只有50个。

我用的是newScheduledThreadPool这种方法做周期性定时任务的,目前发现运行了一段时间都正常,过了几天后,有些定时任务会莫名其妙的不执行,也不报错。比如代码块:

//开启定时对应数量的任务线程池

ScheduledExecutorService s = Executors.newScheduledThreadPool(300);

//高频率定时任务--------------------------------------------------start

//1分钟执行

s.scheduleAtFixedRate(new Test1(),0,60000,TimeUnit.MILLISECONDS);

s.scheduleAtFixedRate(new Test2(),0,60000,TimeUnit.MILLISECONDS);

s.scheduleAtFixedRate(new Test3(),0,60000,TimeUnit.MILLISECONDS);

然后执行几天正常后,某一天发现只有1仍然定时1分钟执行,但是2和3任务都没执行,也不报错。我知道定时任务里面如果有异常会导致后续不执行,所以我已经在代码里面做了try ... catch的处理了。

public class Test2Service implements Runnable{

@Override

public void run() {

try{//必须加try-catch防止方法里面异常后下次定时任务不执行

jobStart();

}catch (Exception e) {

e.printStackTrace();

logger.error("定时任务处理异常");

}

}

//定时任务开始

public void jobStart(){

//获取当前时分做判断

Date now = new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("HHmm");

String currentMin = dateFormat.format(now);

dateFormat = new SimpleDateFormat("YYYYMMdd");

String currentDay = dateFormat.format(now);

if(QuoteBaseService.useFullTime(currentMin)&&QuoteBaseService.isTradeDay(currentDay)){//有效时间里面才1分钟执行,比如周末都不执行

hotProfileZstMin();

}

}

请问有什么可能会导致这样的情况呢,而且我只要当天在服务器kill掉程序的进程后,重新启动服务就都正常了。。。

当然日志里面有部分定时任务报错了,但是我也都做了异常处理(防止不重新执行)的,目前不知道是怎么回事

java一段时间后执行一块代码_java自带的ScheduledExecutorService定时任务正常执行一段时间后部分任务不执行...相关推荐

  1. java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java

    我把程序分为两种,有趣的和无趣的,最近做了几个有趣的项目,其中一个,应当就算是摄像头拍照程序了.用于现场拍照,生成照片,主要用到java Media Framework(JMF). 首先到SUN下载最 ...

  2. java冒泡从大到小排序代码_Java 冒泡排序、快速排序实例代码

    冒泡排序 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地 进行直到没有再需要交换,也就是说该数列已经排序完成.这 ...

  3. java中if条件中删除此行代码_Java中我如何去除if...else...语句?

    描述 读牛人技术博客 A Java Geek,最开始觉得这样的想法很有创意.提前使用静态代码块把对象存入map容器中,在需要的时候在取.他也有提到可以使用DI的方式把需要的对象提前注入好,但是这两种方 ...

  4. java加减两个运算的代码_java加减乘除运算代码

    package demo; import java.util.Stack; /** * 利用栈,进行四则运算的类 * 用两个栈来实现算符优先,一个栈用来保存需要计算的数据 numStack,一个用来保 ...

  5. java教师和学生类的继承代码_Java用继承和实现完成学生,教师和家长三个类

    展开全部 我给你简单的代62616964757a686964616fe4b893e5b19e31333335313761码  那些行为的话 把通用的写在person中  个别的写在个别类中 如: 学生 ...

  6. java中1到5的阶乘代码_java技术支持 求1~5的阶乘之和

    /* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1~5的阶乘 ...

  7. 【Java脚本引擎】脚本引擎执行JavaScript代码

    应用场景 公司有30员工,每个人工资计算方式不同.现在需要计算工资. 传统的方法:一个接口,30个实现类. 使用脚本引擎:编写一个xml文件,每人一个计算公式,使用的时候可以把公式加载到程序中,启动时 ...

  8. Python爬虫之selenium对标签页切换、切换frame标签、cookie处理、执行js代码、开启无界面、以及使用代理ip和替换user-agent等方法

    一.selenium对标签页切换.切换frame标签.cookie处理.执行js代码.开启无界面.以及使用代理ip和替换user-agent等方法 (一).selenium标签页的切换 当seleni ...

  9. 机顶盒ttl无法输入_连接TTL线后无法输入代码、不跑码乱码的解决方法

    原标题:连接TTL线后无法输入代码.不跑码乱码的解决方法 连接TTL线后无法输入代码.不跑码乱码的解决方法,在群里一直会碰到一些网友询问为什么我接好了TTL线后却没有跑码或者是跑出的代码时乱码,是哪里 ...

最新文章

  1. Apache Tomcat 7.x 概述
  2. 60颗卫星被五手火箭送上天!马斯克疯狂的卫星互联网计划不远了
  3. mysql启动和关闭外键约束的方法
  4. 【算法】LeetCode算法题-Maximum Subarray
  5. 源码编译mysql5.5_源码编译安装MySQL5.5
  6. 工业机器人控制问题---来自睿慕课
  7. 《菜菜的机器学习sklearn课堂》聚类算法Kmeans
  8. 【Python笔记】集合
  9. python stack使用_python inspect.stack() 的简单使用
  10. 2013年最新最热播的电影 合集
  11. Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
  12. 10. 了解分配子(allocateor)的约定和限制
  13. 大学计算机实验vfp,Visual FoxPro程序设计上机实验(第2版)
  14. FPGA编程语言--VHDL OR Verilog?
  15. vs配置python环境_VS2017中安装Python开发环境[TZZ]
  16. vios接口虚拟服务器,虚拟VIOS服务器安装手册V1.0.doc
  17. 循环神经网络的从零开始实现
  18. style-loader和css-loader
  19. dubbo面试知识总结
  20. Mathematica软件使用教程

热门文章

  1. [置顶]       Javascript js中页面的重新加载
  2. LindDotNetCore~Mock对实际应用中的意义
  3. 还有王法吗?美国联邦调查局开发人脸识别系统,数据源涉及公民隐私
  4. HTML5 本地数据库IndexedDB数据库
  5. Memcached、Redis OR Tair
  6. json格式的字符串转为json对象遇到特殊字符问题解决
  7. maven 与intellij IDEA 下maven 为groovy 项目生成jar 详解
  8. 让数据库变快的10个建议
  9. CentOS6.0_X86_64 oracle 11g R2 开机自动启动(linux)
  10. 【转】QString 与中文问题