怎么让web服务器启动就执行main函数

言午草民 2016-06-12 10:41:18
项目背景web前台项目,框架:String ,struts2,ibatis.

问题:我写了一个每天定时执行的方法,在myeclipse中只测试这个class文件是可以的,现在我想在web项目启动时就就加载这个class,执行里面的main方法,该怎么写?

我的class:

public class TestTimer {
/**
*
*/
private static final long serialVersionUID = 1L;
static int count = 0;

public static void showTimer() {
TimerTask task = new TimerTask() {
@Override
public void run() {
++count;
System.out.println("时间=" + new Date() + " 执行了" + count + "次"); // 1次
}
};


//设置执行时间
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);//每天
System.out.print("year:"+year+"month:"+month+"day:"+day);
System.out.print("_________________");
//定制每天的21:09:00执行,
calendar.set(year, month, day, 10, 18, 00);
Date date = calendar.getTime();
Timer timer = new Timer();
System.out.println(date);

timer.schedule(task, date);
}


public static void main(String[] args) {
showTimer();
System.out.print("*********************************************8");
}
}

我在web.xml中的配置:

<servlet>
<servlet-name>TestTimer</servlet-name>
<servlet-class>com.***********.action.TestTimer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
...全文
491 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
街头小贩 2016-06-14
  • 打赏
  • 举报
回复
1.听人说过可以这样作。但没试过。 这种方式是配合操作系统的作业或计划任务 2.我都是写一个类来实现ServletContextListener.

@WebListener
public class CustomerTaskListener implements ServletContextListener {
}
3,spring不是可以执行task

<!-- 计划任务配置,用 @Service @Lazy(false)标注类,用@Scheduled(cron = "0 0 2 * * ?")标注方法 -->
    <task:executor id="executor" pool-size="10"/> <task:scheduler id="scheduler" pool-size="10"/>
    <task:annotation-driven scheduler="scheduler" executor="executor" proxy-target-class="true"/>
空心兜兜 2016-06-14
  • 打赏
  • 举报
回复
struts是可以配置一个启动自动执行的servlet

5,658

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧