Commit 58239f66 by chentian

优化

parent 017301d2
......@@ -6,7 +6,6 @@ import com.cc.solr.service.TbStJzxxService;
import com.cc.solr.service.TrackService;
import com.cc.solr.util.propertiesUtil;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
......@@ -17,7 +16,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -29,6 +27,12 @@ public class TrackDataJob implements BaseJob {
@Resource
private TbStJzxxService tbStJzxxService ;
//参数
SolrInputDocument doc=null;
int status=0;
TbStJzxx jzxx=null;
UpdateResponse response=null;
//参数
private static Logger _log = LoggerFactory.getLogger(TrackDataJob.class);
public TrackDataJob() {
......@@ -38,14 +42,15 @@ public class TrackDataJob implements BaseJob {
throws JobExecutionException {
_log.error("TrackData Job执行时间: " + new Date());
JobKey key = context.getJobDetail().getKey();//获取JobDetail的标识信息
/*JobKey key = context.getJobDetail().getKey();//获取JobDetail的标识信息
System.out.println("JobDetail‘s name and group are "+key.getName()+":"+key.getGroup());
TriggerKey triggerKey = context.getTrigger().getKey();//获取Trigger的标识信息
System.out.println("Trigger‘s name and group are "+triggerKey.getName()+":"+triggerKey.getGroup());
System.out.println("Trigger‘s name and group are "+triggerKey.getName()+":"+triggerKey.getGroup());*/
JobDataMap map = context.getJobDetail().getJobDataMap();
String core = map.getString("core");
//1.格式化当前日期 年月日时分秒格式
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//多态
......@@ -53,24 +58,52 @@ public class TrackDataJob implements BaseJob {
String importdate = bf.format(date);//格式化 bf.format(date);
System.out.println("TrackData Job执行时间: " + new Date());
// _log.info("TrackData Job执行时间: " + new Date());
//查询track表增量,track表djsj>当前任务执行时间-1小时的数据,减一小时是为了避免丢失数据。
System.out.println("lallalalalalalalalImportdate:"+importdate);
_log.info("lallalalalalalalalImportdate:"+importdate);
List<Track> trackList= trackService.selectTrackList(importdate);
System.out.println("1:增量总数:"+trackList.size());
// _log.info("1:增量总数:"+trackList.size());
Properties properties = propertiesUtil.propertiesUtil("solr.properties");
String url= properties.getProperty("sourcesolrdata");
HttpSolrClient client = new HttpSolrClient(url);
int savecount=0;
int jzxxcount=0;
for (int i=0;i<trackList.size();i++){
//先查询数据源存在该数据不,
SolrQuery params = new SolrQuery();
params.set("q", "ID:"+trackList.get(i).getId());
//参数
SolrQuery params =null;
//执行搜索
QueryResponse queryResponse = null;
int solrflag=0;
int solrflag=0;
int solrSize=0;
SolrDocumentList resultsize=null;
int savecount=0;
int jzxxcount=0;
List<TbStJzxx> list=null;
long max;
long total;
long free;
long usememory;
//参数
max=Runtime.getRuntime().maxMemory();
total=Runtime.getRuntime().totalMemory();
free=Runtime.getRuntime().freeMemory();
usememory=max-total+free;
System.out.println("1:max"+max);
System.out.println("2:total"+total);
System.out.println("3:free"+free);
System.out.println("4:usememory"+usememory);
_log.info("1:max"+max);
_log.info("2:total"+total);
_log.info("3:free"+free);
_log.info("4:usememory"+usememory);
//参数
for (int i=0;i<trackList.size();i++){
//先查询数据源存在该数据不,
params = new SolrQuery();
params.set("q", "ID:"+trackList.get(i).getId());
try {
queryResponse = client.query(core, params);
} catch(Exception e){
......@@ -80,14 +113,14 @@ public class TrackDataJob implements BaseJob {
//搜索结果
//System.out.println("2:solrflag:"+solrflag);
if(solrflag==0){
SolrDocumentList resultsize = queryResponse.getResults();
resultsize = queryResponse.getResults();
solrSize=resultsize.size();
}else if(solrflag==1){
solrSize=0;
}
if(solrSize==0){//0表示数据源里没有
//再去基站信息表里查询一次,确保确定没有这条数据
List<TbStJzxx> list = tbStJzxxService.selectJzxxByAddressJW(trackList.get(i).getAddress(),trackList.get(i).getJ(),trackList.get(i).getW());
list = tbStJzxxService.selectJzxxByAddressJW(trackList.get(i).getAddress(),trackList.get(i).getJ(),trackList.get(i).getW());
if(list.size()==0){
this.saveJzxx(trackList.get(i),core, client);//25则入库oracle,把数据写入数据源,确保每次任务结束之后,数据源与比对源的数据一致
jzxxcount++;
......@@ -103,12 +136,13 @@ public class TrackDataJob implements BaseJob {
}
System.out.println("3:solr保存条数:"+savecount);
System.out.println("4:基站信息保存条数:"+jzxxcount);
}
//保存基站信息
public void saveJzxx(Track track,String core, HttpSolrClient client){
try {
SolrInputDocument doc = new SolrInputDocument();
doc = new SolrInputDocument();
doc.setField("ID", track.getId());
doc.setField("XXZJBH", track.getXxzjbh());
doc.setField("ADDRESS", track.getAddress());
......@@ -122,19 +156,19 @@ public class TrackDataJob implements BaseJob {
*/
client.add(core, doc);
UpdateResponse response=client.commit(core);
int status = response.getStatus();
response=client.commit(core);
status = response.getStatus();
if (status == 0) {//0表示成功
TbStJzxx jzxx=new TbStJzxx();
jzxx.setXxzjbh(track.getXxzjbh());
jzxx.setAddress(track.getAddress());
jzxx.setLon(track.getJ());
jzxx.setLat(track.getW());
jzxx.setLrsj(new Date());
jzxx.setSource(track.getSource());
jzxx.setSourcename(track.getSourceName());
tbStJzxxService.saveJzxx(jzxx);
jzxx=new TbStJzxx();
jzxx.setXxzjbh(track.getXxzjbh());
jzxx.setAddress(track.getAddress());
jzxx.setLon(track.getJ());
jzxx.setLat(track.getW());
jzxx.setLrsj(new Date());
jzxx.setSource(track.getSource());
jzxx.setSourcename(track.getSourceName());
tbStJzxxService.saveJzxx(jzxx);
//手动add数据到数据源里
}
}catch(Exception e){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment