|
package com.ekexiu.portal.job;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.jfw.apt.annotation.Autowrie;
import org.jfw.apt.annotation.Bean;
import com.ekexiu.portal.dao.ArticleDao;
import com.ekexiu.portal.po.Article;
import com.ekexiu.portal.service.ArticleService;
@Bean
public class ArticleTaskJobEntry implements Runnable {
private static Logger logger = Logger.getLogger(ArticleTaskJobEntry.class);
private long delayTime = 10 * 60;
private String dateFormat = "yyyyMMddHHmmss";
@Autowrie("dataSource")
private DataSource dataSource;
@Autowrie
private ArticleDao articleDao;
@Autowrie
private ArticleService articleService;
public ArticleService getArticleService() {
return articleService;
}
public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
}
public long getDelayTime() {
return delayTime;
}
public void setDelayTime(long delayTime) {
this.delayTime = delayTime;
}
public DataSource getDataSource() {
return dataSource;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public ArticleDao getArticleDao() {
return articleDao;
}
public void setArticleDao(ArticleDao articleDao) {
this.articleDao = articleDao;
}
@Override
public void run() {
try {
Connection con =dataSource.getConnection();
try{
SimpleDateFormat df = new SimpleDateFormat(this.dateFormat);
List<Article> articles = this.articleDao.queryTiming(con, df.format(new Date()));
for (Article article : articles) {
this.articleService.publish(con,article.getArticleId());
logger.info("定时发布文章:"+article.getArticleId()+"--"+df.format(new Date()));
}
con.commit();
}catch(Exception e){
try{con.rollback();
}catch(Exception e1){e1.printStackTrace();}
}finally{
try{con.close();
}catch(Exception e2){e2.printStackTrace();}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
|