新起线程任务

//新起线程清洗
            new Thread(new FilterResultThread(filter)).start();  
            renderJSON(ResultInfo.success(filter,""));
package job;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.EntityManager;

import net.sf.json.JSONObject;

import models.FilterResult;

import play.Logger;
import play.Play;
import play.db.jpa.JPA;
import play.db.jpa.Transactional;
import play.jobs.Every;
import play.jobs.Job;
import util.Constants;
import util.DBHelper;
import util.DBUtil;
import util.DateUtil;
import util.DocUtil;
import util.SqlHelper;
import util.XString;

import com.google.gson.Gson;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;

/**
 * @ClassName: FilterResultJob
 * @Description: 清洗词 任务
 * @author wlj
 * @date 2016-9-22 下午4:27:29
 * 
 */
public class FilterResultThread implements Runnable {
    private FilterResult filter;

    public FilterResultThread(FilterResult filter) {
        this.filter = filter;
    }

    @Override
    @Transactional
    public void run() {
        if (JPA.local.get() == null) {
            EntityManager em = JPA.newEntityManager();
            final JPA jpa = new JPA();
            jpa.entityManager = em;
            JPA.local.set(jpa);
        }
        String et = filter.createTimeStr;
        updateResult(et, filter);
        JPA.em().close();
    }

    static String oldet = "";

    public static void updateResult(String et, FilterResult filter) {
        JPA.em().getTransaction().begin();
        System.out.println(oldet + "****" + et);
        HashMap<String, Object> condition = new HashMap<String, Object>();
        condition.put("tag", "t" + filter.taskId);
        condition.put("et", et);
        condition.put("ps", 5000);
        condition.put("p", 1);
        condition.put("sb", "real_time");
        condition.put("so", -1);
        condition.put("ch", "0");
        condition.put("status", "0");
        JSONObject json = DocUtil.getNewForFilter(condition, true, true,
                filter.word,filter.userName);
        List<Map> result=json.getJSONArray("result");
        int num=json.getInt("num");
        System.out.println("result.size=="+result.size());
        if (result.size() <5000 || oldet == et) {
            System.out.println("完成");
            String sql="update filter_result set status='完成' where id="+filter.id;
            System.out.println(sql);
            SqlHelper.updateBySql(sql);
            JPA.em().getTransaction().commit();
        } else {
            oldet = et;
            et = result.get(result.size() - 1).get("real_time").toString();
            String sql="update filter_result set num=num+"+num+" , do_time='"+et+"' where id="+filter.id;
            System.out.println(sql);
            SqlHelper.updateBySql(sql);
            JPA.em().getTransaction().commit();
            updateResult(et, filter);
        }

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值