【tomcat】 启动完成就执行 定时 任务

就是 想单纯的记录一下 方便 以后 自己也会用到
直接上代码
首先、创建一个类 继承 ServletContextListener父类

public class ScheduleListener implements ServletContextListener
{
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		Runnable runnable = new Runnable() {  
            public void run() {  
                // task to run goes here  
                System.out.println( "------------------------执行" ); 
                //就可以调用自己的方法执行了
            }  
        };  
        ScheduledExecutorService service = Executors  
                .newSingleThreadScheduledExecutor();  
        // 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间  单位秒
        service.scheduleAtFixedRate(runnable, 1 , 60 , TimeUnit.SECONDS); 
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		
	}
	
}

然后在web.xml里面 配置 类的 监听

<listener>
		<listener-class>com.cn.schedule.ScheduleListener</listener-class>
</listener>

OK
因为线程安全的原因可能 会让Spring的注解 注入 失败
这个 在前面的博客 我已经解决过了 有兴趣的去看看吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Quartz是一个开源的调度框架,常用于定时任务的调度和执行。当我们将Quartz集成到Tomcat中,并希望在Tomcat启动执行一次任务时,可以按照以下步骤进行配置。 首先,我们需要在Tomcat的web.xml文件中配置一个Servlet,用于接收Tomcat启动的事件通知。在该Servlet的初始化方法中,我们可以通过调用Quartz的Scheduler实例的start方法来启动Quartz的调度器,以便开始任务的调度。 然后,我们需要定义一个Quartz的Job类,该类实现了Quartz的Job接口。在Job类中,我们可以实现我们需要执行任务逻辑。例如,如果我们希望在Tomcat启动时打印一条日志,则可以在Job类的execute方法中执行打印日志的逻辑。 接下来,我们需要在Quartz的配置文件(例如quartz.properties)中配置需要执行的Job。在配置文件中,我们可以指定调度任务执行时间和频率。例如,我们可以使用Cron表达式来定义定时任务执行时间,如每天的凌晨2点执行一次。 最后,我们将配置文件和Job类放置在项目的classpath目录下,并将其添加到Tomcat的类路径中。 当我们启动Tomcat时,Tomcat会初始化Servlet,并触发Servlet的初始化方法。在初始化方法中,我们会调用Quartz的Scheduler实例的start方法,从而启动Quartz的调度器。Quartz的调度器会按照配置文件中的设定,执行我们定义的任务逻辑,例如打印一条日志。 总结起来,通过在Tomcat中集成Quartz,并在Tomcat启动执行一次任务,我们可以使用Tomcat启动事件通知机制,在Quartz中定义和调度任务,并在任务启动执行我们所需的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值