فهرست منبع

git-svn-id: https://192.168.57.71/svn/jsgkj@324 931142cf-59ea-a443-aa0e-51397b428577

xt_yuanxd 9 سال پیش
والد
کامیت
ae8144229a

+ 5 - 3
xtdsp/trunk/src/main/java/com/xt/dsp/bean/TaskCacheBean.java

@@ -6,6 +6,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
 
+import com.alibaba.fastjson.JSONObject;
+
 /**
  * 任务缓存实例
  * 
@@ -16,7 +18,7 @@ public class TaskCacheBean implements Comparable<TaskCacheBean> {
 	private final Logger log = LoggerFactory.getLogger(TaskCacheBean.class);
 	private String cacheFolder;
 	private String subFolder;
-	private Object cacheData;
+	private JSONObject cacheData;
 	private String fileName;
 	private long timeMillis;
 	private long num = 0;
@@ -31,7 +33,7 @@ public class TaskCacheBean implements Comparable<TaskCacheBean> {
 		return t;
 	}
 
-	public Object getCacheData() {
+	public JSONObject getCacheData() {
 		return cacheData;
 	}
 
@@ -88,7 +90,7 @@ public class TaskCacheBean implements Comparable<TaskCacheBean> {
 		return 0;
 	}
 
-	public void setCacheData(Object cacheData) {
+	public void setCacheData(JSONObject cacheData) {
 		this.cacheData = cacheData;
 	}
 

+ 28 - 23
xtdsp/trunk/src/main/java/com/xt/dsp/serviceImpl/CacheBeanServiceImpl.java

@@ -1,16 +1,17 @@
 package com.xt.dsp.serviceImpl;
 
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
-import org.springframework.util.FileCopyUtils;
 
 import com.alibaba.fastjson.JSONObject;
 import com.xt.dsp.bean.TaskCacheBean;
@@ -20,21 +21,6 @@ import com.xt.dsp.service.CacheBeanService;
 public class CacheBeanServiceImpl implements CacheBeanService {
 	private final Logger log = LoggerFactory.getLogger(CacheBeanServiceImpl.class);
 
-	private String getTaskCacheBeanData(TaskCacheBean taskCacheBean) {
-		Object data = taskCacheBean.getCacheData();
-		if (data == null) {
-			return "";
-		}
-		if (data instanceof String) {
-			return (String) data;
-		}
-		if (data instanceof JSONObject) {
-			JSONObject dataJson = (JSONObject) data;
-			return dataJson.toJSONString();
-		}
-		return String.valueOf(data);
-	}
-
 	@Override
 	public List<TaskCacheBean> readCache(String cacheFolder) {
 		File folder = new File(cacheFolder);
@@ -45,13 +31,21 @@ public class CacheBeanServiceImpl implements CacheBeanService {
 		for (File f : folder.listFiles()) {
 			TaskCacheBean tc = new TaskCacheBean();
 			tc.setFileName(f.getName());
+			ObjectInputStream in = null;
 			try {
-				String data = FileCopyUtils.copyToString(new FileReader(f));
-				tc.setCacheData(data);
+				in = new ObjectInputStream(new FileInputStream(f));
+				tc.setCacheData((JSONObject) in.readObject());
 				taskCacheBeanList.add(tc);
-				f.delete();
-			} catch (IOException e) {
+			} catch (Exception e) {
 				log.error("file read error:{}", e.getMessage());
+			} finally {
+				if (null != in) {
+					try {
+						in.close();
+					} catch (IOException e) {
+					}
+				}
+				f.delete();
 			}
 		}
 		return taskCacheBeanList;
@@ -72,10 +66,21 @@ public class CacheBeanServiceImpl implements CacheBeanService {
 		if (count > 0) {
 			f = new File(folder, fileName + "-" + count);
 		}
+		ObjectOutputStream out = null;
 		try {
-			FileCopyUtils.copy(getTaskCacheBeanData(taskCacheBean), new FileWriter(f));
+			out = new ObjectOutputStream(new FileOutputStream(f));
+			out.writeObject(taskCacheBean.getCacheData());
+			out.flush();
 		} catch (IOException e) {
 			log.error("缓存写入失败:{}", e.getMessage());
+		} finally {
+			if (null != out) {
+				try {
+					out.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
 		}
 		return 0;
 	}

+ 1 - 1
xtdsp/trunk/src/main/java/com/xt/dsp/serviceImpl/TaskSqlServiceImpl.java

@@ -142,7 +142,7 @@ public class TaskSqlServiceImpl implements TaskSqlService {
 			if (null == bean) {
 				return -1;
 			}
-			runTaskSqlWithJdbcTemplate(t, bean, JSONObject.parseObject((String) tc.getCacheData()));
+			runTaskSqlWithJdbcTemplate(t, bean, tc.getCacheData());
 		}
 		t.setCacheUse(TaskBean.CACHE_UNUSE);
 		taskService.updateByPrimaryKey(t);