`
LiYunpeng
  • 浏览: 942812 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Tomcat不影响启动时间 启动完成后执行一个操作的实现方法

阅读更多
关于Tomcat启动后台服务时候,在不影响启动时间的情况下,启动完成执行一个操作

主要思路是对后台进行一些初始化操作
但是,有可能初始化操作的时间长度是不可控的,甚至可能是在循环的操作
所以试过了如下方法是不太合适的
如:
1.配置一个Servlet默认自动启动
2.配置一个Listener来启动
3.实现Spring的InitializingBean接口
但是,这三种方法,都是伴随着Tomcat来启动的,也就是占用Tomcat的启动时间

以上是伴随启动的方法
以下是不影响Tomcat启动的并行方法

其实考虑到伴随启动,就想到了Flex开发通常用到的异步调用
无非就是新创建了一个线程来单独执行,这样Tomcat执行到相应的操作就可以直接继续下去了,不会处于等待的状态,避免了启动超时

具体思路如下
1.创建新的线程去执行(本方法没有实际实验,本文记录的是第二种方法,使用Quartz)
2.使用Quartz来配置一个任务执行
具体配置如下
实现Job接口的任务实现类
public class InitJob implements Job {

	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
	}
	
	public void executeA() throws JobExecutionException {
		// TODO Auto-generated method stub
		.........
	}

Spring配置文件中配置的任务
<bean id="initJob" class="com.xxx.services.InitJob" />
<!--定时器任务配置(开始)-->	 
	<!--配置JOB-->
	<bean id="initJobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="initJob" />
		<property name="targetMethod" value="executeA" />
<!-- 		<property name="arguments" /> -->
	</bean>
	<!--配置Trigger-->
	<bean id="initTrigger"  
	    class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
	    <property name="jobDetail" ref="initJobDetail" />  
	    <property name="startDelay" value="1000" />
	    <property name="repeatInterval" value="0" />
	    <property name="repeatCount" value="0" />
	</bean>
	<!--配置Scheduler-->
	<bean id="schedulerFactory"  
	    class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="no">  
	    <property name="triggers">  
	        <list>  
	            <ref bean="initTrigger" />  
	        </list>  
	    </property>  
	    <property name="autoStartup" value="true"/>
	</bean>
	<!--定时器任务配置(结束)-->

以上的配置不详细说明了,不明白意思的属性可以去API文档中查询
http://www.quartz-scheduler.org/api/1.8.5/

这里需要注意的一点就是Job的实现,是必须重写execute方法的,可是我反复实验,在targetMethod的value中写execute,就会报错,找不到execute方法,后来想了想,可能是参数的问题
copy了原来的方法,于是去掉了参数,就好用了
----------------------------

另外,再记录一个关于Quartz两种配置JobDetail的方法,直接在代码中创建JobDetail,会无法注入相应的接口实现,在稍后的博客中介绍
分享到:
评论

相关推荐

    tomcat启动执行java自定义方法

    tomcat启动时执行java自定义方法,一般用于启动时赋值情况。

    quartz 随tomcat启动执行一次

    tomcat启动时立即调用quartz执行一次

    tomcat启动时,在后台自动执行一线程

    要实现在Tomcat启动时自动执行的Servlet,我们需要在Servlet的`init()`方法中添加代码来创建一个后台线程。`init()`方法是Servlet生命周期中的初始化阶段,当Servlet被加载时,Tomcat会调用这个方法。我们可以在`...

    tomcat设置开机自启动.docx

    在本文中,我们将设置 Tomcat 的自动启动时间为“每次开机后”,以便在系统启动时自动启动 Tomcat 服务。 知识点 4: 设置 Tomcat 的启动文件 在设置 Tomcat 的自动启动时,需要指定 Tomcat 的启动文件 bat。用户...

    tomcat启动时定时循环执行内容(action)

    标题中的“tomcat启动时定时循环执行内容(action)”指的是在Tomcat服务器启动过程中,通过配置或者自定义代码实现一个定时任务,使得该任务在Tomcat启动后能够周期性地自动执行。这种机制常用于需要定期检查、更新...

    Tomcat开机自启动

    "Tomcat开机自启动" ...Tomcat 开机自启动可以通过创建自启动脚本、赋予权限、启动服务和设置开机自启动来实现。在本文中,我们介绍了 Tomcat 开机自启动的步骤和相关知识点,为读者提供了一个详细的指南。

    tomcat启动管理工具

    "Tomcat启动管理工具"指的是用于控制和监控Tomcat服务器的一系列方法和工具。 【描述】:Tomcat启动管理工具涵盖了启动、停止、监控以及配置Tomcat服务器的过程。这些工具可以帮助开发者有效地管理他们的应用服务,...

    tomcat启动|退出执行事件

    tomcat启动|退出执行事件类: import java.io.File; import java.io.FileWriter; import java.io.IOException; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import ...

    java 定时器任务timer 随tomcat启动而启动 同步启动

    我们通常写的timer都是用main方法写的定时器,但同样我们...不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台服务器上执行就行了,其他服务器注释掉web中的监听就行了。

    tomcat6开机启动

    这里`Tomcat6`是服务名,`binPath`是Tomcat启动脚本的路径。 3. 设置服务启动类型,使其开机自动启动: ``` sc config Tomcat6 start= auto ``` 4. 启动服务: ``` net start Tomcat6 ``` **Linux/Unix系统...

    tomcat启动服务运行servlet

    标题“Tomcat启动服务运行Servlet”涉及到的是Java Web开发中的核心概念,主要涵盖Tomcat服务器的启动过程以及Servlet的执行机制。Tomcat是一款开源、免费的Web应用服务器,广泛用于部署Java Servlet和JavaServer ...

    Windows 启动tomcat服务bat 可执行脚本

    Windows系统下 启动tomcat服务bat 可执行脚本,当开发人员想要通过在java中开发一个启动Windows系统下tomcat的脚本文件时,就可以使用我这个

    Tomcat停止与启动shell

    标题 "Tomcat停止与启动shell" 指的是一个用于管理Tomcat服务器的脚本,通常这个`restart.sh`文件是用来自动化Tomcat服务的启动和停止操作的。Tomcat是Apache软件基金会的一个开源项目,是一个广泛使用的Java ...

    Tomcat启动分析以及如何启动

    Tomcat启动分析与配置详解 Tomcat是一款广泛使用的开源Java Servlet容器,它实现了Java EE的Web应用程序规范。理解Tomcat的启动过程和配置对于优化服务器性能和管理Web应用至关重要。本文将深入解析Tomcat的组成...

    windows下,把tomcat作成服务开机自启动不显示cmd窗口.zip

    在Windows操作系统中,将Tomcat配置为服务并设置为开机自启动,且不显示命令行窗口,是一项常见的系统管理任务。这有助于确保Tomcat在计算机启动时自动运行,并且不会打扰用户界面。以下是对这个过程的详细解释: ...

    Tomcat启动停止脚本

    提供的"Tomcat停止启动脚本"可能是一个整合了启动和停止功能的自定义脚本,它可以更方便地在一个步骤中完成启动和停止的操作。这种自定义脚本可能会包含错误检查、日志记录等功能,提高管理和监控的效率。 五、安全...

    Tomcat启动顺序

    【标题】:Tomcat启动顺序 【描述】:Tomcat作为Apache软件基金会的开源Java Servlet容器,其启动过程是理解其工作原理的关键部分。Tomcat的启动顺序涉及到多个层次的加载,从Bootstrap类开始,逐步加载系统配置、...

    Ant编译Tomcat源码、MyEclipse导入Tomcat源码、执行Tomcat源码启动Tomcat

    Ant是一个基于XML的构建工具,而Tomcat则是一个流行的开源Servlet容器。本篇将详细介绍如何使用Ant编译Tomcat源码,以及如何在MyEclipse环境中导入并运行Tomcat源码。 首先,Ant是Apache软件基金会开发的Java项目...

    tomcat启动和关闭

    标题中的“Tomcat启动和关闭”是指在Apache Tomcat服务器中进行服务的启停操作,这是每个Java Web开发者必备的基础技能。Apache Tomcat是一个开源的Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范...

    tomcat崩溃自启动

    为了实现一个完整的Tomcat崩溃自启动方案,还需要考虑以下几个方面: 1. **服务监控**:除了脚本,还可以使用专门的系统监控工具,如Nagios、Zabbix等,实时监控Tomcat的运行状态,包括CPU、内存使用情况、网络连接...

Global site tag (gtag.js) - Google Analytics