JAVA中定时自动完成任务的实现

 我来答
大沈他次苹0B
2022-11-21 · TA获得超过7330个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:178万
展开全部

  JAVA中定时自动完成任务的实现要用到JAVA中的定时器TimerTask和监听器 听起来貌似有点困难但是实现起来还是比较容易的!纸老虎~~!

  下面的列子很详细 是关于定时向服务器上传(也可以是其他的动作这是看需要关于上传我博客有写过可以参考)文件的列子简单的 步就可以实现

   首先创建动作bean

  package sun time ;

  public class UploadFile{

  /**

  *实现上传的代码s省略  可以看下我下面的 篇日志

  __haiming/blog/static/ / 使用 *** arupload 实现上传下载[有例子]

  __haiming/blog/static/ / 使用Struts 多文件上传

  */

  public void upload()

  {

  System out println( 系统自动的上传文件了 );

  }

  }

   创建定时器MyTaker并完成相应的功能

  package sun time ;

  import java util Calendar;

  import java util TimerTask;

  import javax servlet ServletContext;

  public class MyTaker extends TimerTask {

  private static boolean isRun = false;

  private   ServletContext context ;

  private Calendar ca  = Calendar getInstance();

  public MyTaker(ServletContext context)

  {

  ntext = context;

  }

  @Override

  public void run() {

  if(!isRun){

  if( ==ca get(Calendar MINUTE)){

  isRun = true;

  context log( 正在执行所加载的任务 );

  UploadFile uf= new UploadFile();

  uf upload();

  isRun =false;

  context log( 任务顺利完成 );

  }

  }

  else

  {

  System out println( 任务还没有执行完毕 );

  }

  }

  }

   创建监听器ContextListener

  package sun time ;

  import javax servlet ServletContextEvent;

  import javax servlet ServletContextListener;

  import sun time MyTaker;

  import java util *;

  public class ContexListener  implements ServletContextListener{

  private  Timer timer = null;

  @Override

  public void contextDestroyed(ServletContextEvent event) {

  timer cancel();

  event getServletContext() log( 任务列表已经销毁了 );

  }

  @Override

  public void contextInitialized(ServletContextEvent event) {

  timer = new Timer(true);

  event getServletContext() log( 服务器已经启动了 );

  timer schedule(new  MyTaker(event getServletContext()) );///每隔多长时间检查扫描一次

  event getServletContext() log( 已经加载了任务的列表 );

  }

  }

   最后一步就是在web xml中配置监听

  <! Java定时器 >

  <listener>

  <listener class> sun time ContexListener</listener class>

lishixinzhi/Article/program/Java/hx/201311/26450

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式