`

定时调度器ssh框架下的timertask

 
阅读更多

applicationContext.xml:

 

<bean name="healthDegree" class="util.HealthDegree">
    <property name="service" ref="AppService"></property>
</bean>

<bean id="healthDegreeTask"   
    class="org.springframework.scheduling.timer.ScheduledTimerTask">     
   <property name="timerTask" ref="healthDegree" />     
    <property name="period" value="300000" />     
    <property name="delay" value="1000" />     
</bean>
 <bean class="org.springframework.scheduling.timer.TimerFactoryBean">     
    <property name="scheduledTimerTasks">     
        <list> 
            <ref bean="healthDegreeTask"/> 
         </list>    
    </property>     
</bean>

 

util.HealthDegree:

 

public class HealthDegree extends TimerTask {
 private Logger log = Logger.getLogger(HealthDegree.class);
 
 IApp service ;/*= new AppService();*/
 
 
 public IApp getService() {
  return service;
 }

 public void setService(IApp service) {
  this.service = service;
 }
 //
 public List<HealthAppUrl> getScanHdUrl()
 {  
  List<HealthAppUrl> list = service.listAppHD(); 
  return list;
 }
 //
 public void insertScanHdInfo(HealthDegreeData hdd){
   service.insertScanHdInfo(hdd);
 }
 private boolean execute_connetion(String URLName) {
  
  try {  
   HttpURLConnection.setFollowRedirects(false); 
   HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection();  
   con.setRequestMethod("HEAD");  
   return (con.getResponseCode() == HttpURLConnection.HTTP_OK); 
   
   } catch (Exception e) {  
    //e.printStackTrace();   //这里是关键点,避免异常后的就终止调度了
    return false; 
    }
  }
 
 @Override
 public void run() {
  
  List<HealthAppUrl> dataList = getScanHdUrl();

  for(int i=0;i<dataList.size();i++){
  HealthDegreeData hdd =  new HealthDegreeData();
  SimpleDateFormat sfm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  String scanStartTime = sfm.format(new Date(System.currentTimeMillis()));
  hdd.setHd_id(1);
  hdd.setHd_app_id(dataList.get(i).getId());
  hdd.setHd_app_url(dataList.get(i).getApp_url_wai());
  hdd.setHd_conn_time(scanStartTime);
  hdd.setHd_hour(scanStartTime.substring(10,13));
  
  String URLName =  dataList.get(i).getApp_url_wai();
  
  try {
   if(this.execute_connetion(URLName)) {
    hdd.setIs_success("1");
    log.info("访问成功");
   }else{
    hdd.setIs_success("0");
    log.info("访问失败");
   }
   String scanEndTime = sfm.format(new Date(System.currentTimeMillis()));
   hdd.setHd_close_conn_time(scanEndTime);
  } catch (Exception e) {
   log.info("访问失败");
  }finally{
   service.deleteScanHdInfo();
   this.insertScanHdInfo(hdd);
  }
 }
}
 

}

 

 

 

分享到:
评论

相关推荐

    TimerTask执行每日定时任务

    在更复杂的场景下,例如需要更精确的控制或者更高的并发性能,可以考虑使用`ScheduledExecutorService`,它是Java并发框架`java.util.concurrent`的一部分,提供了更强大的定时任务调度功能。 总之,`TimerTask`和`...

    监听器定时调度实例(很容易学会)

    总之,监听器定时调度是Java中实现定时任务的一种有效方式,适用于那些需要在后台定期执行的逻辑。通过熟练掌握 `Timer` 和 `TimerTask`,你可以轻松地为你的应用程序添加这种功能。记得在CSDN等平台学习更多相关...

    JAVA定时任务调度

    Quartz是一个开源的作业调度框架,提供了高度可配置的定时任务管理。它支持复杂的调度策略,如按日期、时间表达式、Cron表达式等安排任务。Quartz允许将任务与触发器关联,灵活地控制任务执行。使用Quartz创建任务...

    java定时任务调度

    在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...

    TimerTask定时执行任务

    在本话题中,我们将深入学习如何在Spring2框架下利用`TimerTask`实现定时任务,以及在MyEclipse开发环境中,如何与Tomcat服务器配合使用。 【描述】:基于MyEclipse的集成开发环境,我们可以构建Java Web项目,并...

    Java语言定时调度任务之实现.pdf

    Java的Executor框架提供了线程池管理的相关类,如ThreadPoolExecutor和ScheduledThreadPoolExecutor,后者支持定时或周期性的任务调度。 线程池调度的优点在于可以重用线程,减少线程创建和销毁的开销,提高执行...

    ssh定时器

    - `MainExecutor.java`:可能包含了使用Java定时框架(如Quartz或Spring的TaskScheduler)来定义和执行定时任务的逻辑。 - 定时任务API:如`java.util.Timer`和`java.util.TimerTask`,或者是Spring的`@Scheduled`...

    timerTask实现每天定时一段时间内执行定时任务

    在Java编程中,`TimerTask` 是一个非常实用的类,用于实现周期性的定时任务。`TimerTask` 是 `java.util.Timer` 类的一个子类,它允许开发者定义一个任务,该任务可以在预定的时间间隔内重复执行。下面我们将深入...

    Spring 框架自带定时任务和Quartz定时任务

    Quartz不仅可以调度单个任务,还可以构建一个集群的调度环境,并且可以与数据库交互,支持监听器、插件和集群功能,适合大型分布式系统和需要高可用性的场景。 Quartz还提供了更为复杂的调度表达式,可以精确地定义...

    几种定时任务(Timer、TimerTask、ScheduledFuture)的退出—结合真实案例【JAVA并发】.docx

    例如,在文件生成监控的场景下,我们可以创建一个内部类继承自TimerTask: ```java class FileStatusChecker extends TimerTask { private String fileName; // 构造器和业务逻辑 ... @Override public void ...

    Java语言定时调度任务之实现.zip

    Java提供了多种方式来实现定时调度任务,本篇将深入探讨这些实现方法。 1. **Java内置定时器:java.util.Timer** Java标准库提供了一个`Timer`类,它允许程序员安排在未来某个时间执行一个任务,或者定期重复执行...

    java定时任务调度框架(csdn)————程序.pdf

    虽然Quartz的代码相对复杂,但在需要高级定时任务管理的场景下,它的功能和灵活性是其他框架无法比拟的。 ### 定时器算法 1. **小顶堆**: 小顶堆是一种特殊的完全二叉树,其中每个节点的值都不大于其子节点。在...

    Spring整合TimerTask实现定时任务调度

    Spring框架提供了多种方式来实现定时任务,其中之一就是整合JDK自带的`TimerTask`。本文将详细介绍如何在Spring中使用`TimerTask`实现定时任务调度。 首先,`TimerTask`是Java标准库中的一个类,它实现了`Runnable`...

    Java实现定时调度的三种方法 - CSDN博客1

    (1)Timer对调度的支持是基于绝对时间,而不是相对时间的,由此任务对系统时钟的改变是敏感的 (2)所有的TimerTask只有一个线程TimerThread

    TimerTaskDemo

    【TimerTaskDemo】是一个示例程序,展示了Java中的定时任务处理技术,主要涉及`Timer`类和`TimerTask`类的使用。在这个示例中,开发者可能创建了一个`TimerTask`实例来执行特定的任务,然后通过`Timer`类来调度这个...

    Web中使用Timer和TimerTask定时获取数据。

    4. **替代方案**:考虑到`Timer`和`TimerTask`的一些限制,Java 5引入了`ScheduledExecutorService`,它提供了一套更强大且线程安全的定时任务调度接口。在新的项目中,通常推荐使用`ScheduledExecutorService`而...

    java定时任务每天执行TimerTask 使用方法

    发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。为了,避免这种情况 发生,只能判断一下,如果发布或重启服务的时间晚于定时执行任务的时间,就在此基础上加一天。

    Spring定时器TimerTask用法

    这个模块提供了多种定时任务的支持,如基于Java的`@Scheduled`注解、Quartz调度器和`ThreadPoolTaskScheduler`等。其中,`@Scheduled`注解是针对简单定时任务的最简便方式,它允许开发者直接在方法上声明定时规则。 ...

    Java 定时任务及作业调度 Quartz与Timer

    **Quartz** 是一个功能丰富的开源作业调度框架,支持复杂的调度策略,比如定时、周期性执行,甚至可以定义基于日期的触发器。Quartz具有可伸缩性,能够在多线程和分布式环境中工作,适合大型项目。Quartz的核心组件...

    TimerTask_Demo.zip

    在Java编程语言中,`Timer`和`TimerTask`是两个重要的类,它们用于实现定时任务的调度。这个"TimerTask_Demo.zip"文件提供了一个简单的示例,演示了如何利用这两个类来创建一个每日自动执行的任务。下面将详细介绍`...

Global site tag (gtag.js) - Google Analytics