java定时器用法_java 定时器的用法

java 定时器的用法

刚做了一个定时器的程序,我做的是定时采集,下面就分享给大家。

其实有两种做法 我用的是web.xml配置文件,还有一种是用spring配置,这里就不详解spring了

首先写定时器的监听器  粗体的就是要加载的类

package com.chinaGPS.song.listener;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.http.HttpServlet;

import com.chinaGPS.song.util.Mp3TimerTask;

public class Mp3TimerTaskListener extends HttpServlet implements

ServletContextListener {

private static final long serialVersionUID = 1L;

private java.util.Timer timer = null;

public Mp3TimerTaskListener() {

}

public void contextInitialized(ServletContextEvent event) {

timer = new java.util.Timer(true);

event.getServletContext().log("定时器已启动...");

timer.schedule(new Mp3TimerTask(event.getServletContext()), 0, 60 * 1000L);

event.getServletContext().log("已经添加任务调度表...");

}

public void contextDestroyed(ServletContextEvent event) {

timer.cancel();

event.getServletContext().log("定时器销毁");

}

}

然后就加载类

package com.chinaGPS.song.util;

import java.util.Calendar;

import java.util.List;

import java.util.TimerTask;

import javax.servlet.ServletContext;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

import com.chinaGPS.song.pojo.Song_musiclist;

import com.chinaGPS.song.service.MusicListService;

import com.chinaGPS.song.service.SingerService;

import com.chinaGPS.song.service.SongService;

import com.chinaGPS.song.util.constant.SystemParams;

public class Mp3TimerTask extends TimerTask {

private List musicList;

private String TIME = SystemParams.C_SCHEDULE_HOUR;

private static boolean isRunning = false;

private ServletContext context = null;

private SingerService singerService;

private SongService songService;

public SongService getSongService() {

return songService;

}

public void setSongService(SongService songService) {

this.songService = songService;

}

public SingerService getSingerService() {

return singerService;

}

public void setSingerService(SingerService singerService) {

this.singerService = singerService;

}

public String getMusicListId() {

return musicListId;

}

public void setMusicListId(String musicListId) {

this.musicListId = musicListId;

}

private String musicListId;

String basePath  =  SystemParams.FILESERVERPATHVALUE+ "/" ;

private MusicListService musicListService;

public MusicListService getMusicListService() {

return musicListService;

}

public void setMusicListService(MusicListService musicListService) {

this.musicListService = musicListService;

}

public List getMusicList() {

return musicList;

}

public void setMusicList(List musicList) {

this.musicList = musicList;

}

public Mp3TimerTask(ServletContext context) {

this.context = context;

//得到spring的上下文 这个很重要

WebApplicationContext context1 = WebApplicationContextUtils.getRequiredWebApplicationContext(context);

musicListService = (MusicListService) context1.getBean("musicListService");

songService = (SongService) context1.getBean("songService");

singerService = (SingerService) context1.getBean("singerService");

}

@Override

public void run() {

Calendar cal = Calendar.getInstance();

if (!isRunning) {

String s = cal.get(Calendar.HOUR_OF_DAY)+":"+

(cal.get(Calendar.MINUTE)<10?"0"+

cal.get(Calendar.MINUTE):cal.get(Calendar.MINUTE));

System.out.println(s+"" +"abc");

System.out.println(TIME);

if (TIME.equals(s)) {

isRunning = true;

context.log("开始执行指定任务");

//自动采集歌曲

AutoCollectionSongs();

System.out.println("已经配置成功!!!");

isRunning = false;

context.log("指定任务执行结束");

}

} else {

context.log("上一次任务执行还未结束");

}

}

public void AutoCollectionSongs() {

//        MusicListDao mudao= new MusicListDao();

//        musicList=mudao.getAllMusicList();

//MusicListService musicListService= new MusicListServiceImpl();

musicList = musicListService.getAllMusicList();

if(musicList==null) {

System.out.println("查询音乐榜单列表为空");

}

System.out.println(musicList);

for(int i=0; i

String url = musicList.get(i).getMusiclistUrl();

if(url != null && !"".equals(url)){

CollectThread collectThread =     new  CollectThread(SystemParams.PATH+SystemParams.FILE_UPLOAD_DIR);

collectThread.setUrl(url);

collectThread.setBasePath(basePath);

collectThread.setMusicListId(musicListId);

collectThread.setSingerService(singerService);

collectThread.setSongService(songService);

Thread thread = new Thread(collectThread);

thread.start();

}

}

}

}

最后就是web.xml配置文件了 添加监听器

com.chinaGPS.song.listener.Mp3TimerTaskListener

©著作权归作者所有:来自51CTO博客作者javahz的原创作品,如需转载,请注明出处,否则将追究法律责任

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值