Package com.appspot.piment.jobs

Source Code of com.appspot.piment.jobs.Job1009

package com.appspot.piment.jobs;

/**
* データ掃除ジョブ
*
*/
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.appspot.piment.Constants;
import com.appspot.piment.dao.AuthTokenDao;
import com.appspot.piment.dao.CommentMapDao;
import com.appspot.piment.dao.ConfigItemDao;
import com.appspot.piment.dao.JobDao;
import com.appspot.piment.dao.PMF;
import com.appspot.piment.dao.UserMapDao;
import com.appspot.piment.dao.WeiboMapDao;
import com.appspot.piment.model.Job;
import com.appspot.piment.model.JobStatus;
import com.appspot.piment.model.UserMap;
import com.appspot.piment.util.DateUtils;

public class Job1009 extends HttpServlet {

  private static final long serialVersionUID = -92121442307525087L;

  private static final Logger log = Logger.getLogger(Constants.FQCN + Job1009.class.getName());

  Map<String, String> configMap = null;

  public Job1009() {
  super();
  ConfigItemDao configItemDao = new ConfigItemDao();
  this.configMap = configItemDao.getValues();
  }

  public void doGet(HttpServletRequest req, HttpServletResponse resp) {
  log.info("-- Job1009 start --");

  long startTime = System.currentTimeMillis();
  Job job = null;
  try {

    job = (new JobDao()).getJob(this.getClass().getName());

    job.setStatus(JobStatus.RUNNING);
    PMF.saveEntity(job);
    log.info("job's status:" + job);

    // トークン情報の削除
    AuthTokenDao authTokenDao = new AuthTokenDao();
    authTokenDao.clearTempToken(Integer.valueOf(this.configMap.get("app.piment.temptoken.lifetime")));

    UserMapDao userMapDao = new UserMapDao();
    List<UserMap> allUserMap = userMapDao.getAllUserMaps();

    // メッセージ履歴の掃除
    WeiboMapDao weiboMapDao = new WeiboMapDao();
    weiboMapDao.removeOlder(allUserMap, Integer.valueOf(this.configMap.get("app.piment.weibomap.lifetime")));

    // コメント履歴の掃除
    CommentMapDao commentMapDao = new CommentMapDao();
    commentMapDao.removeOlder(allUserMap, Integer.valueOf(this.configMap.get("app.piment.weibomap.lifetime")));

    // ジョブ状態変更
    job.setStatus(JobStatus.SUCCESSED);

  } catch (Exception e) {
    // ジョブ状態変更
    if (job != null) {
    job.setStatus(JobStatus.FAILED);
    }
    throw new RuntimeException(e);
  } finally {

    long costTime = System.currentTimeMillis() - startTime;
    if (job != null) {
    job.setLastExecuteTime(DateUtils.getSysDate());
    job.setCostTime(costTime);
    PMF.saveEntity(job);
    log.info("job's status:" + job);
    }
    log.info("-- Job1009 end [cost " + costTime + " TimeMillis]--");
  }

  }
}
TOP

Related Classes of com.appspot.piment.jobs.Job1009

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.