Commit fea5cb28 by 陶光胜

取数平台下载优化

parent 559330bd
...@@ -16,6 +16,7 @@ import com.github.pagehelper.PageHelper; ...@@ -16,6 +16,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.opencsv.CSVWriter; import com.opencsv.CSVWriter;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -28,6 +29,9 @@ import java.sql.ResultSet; ...@@ -28,6 +29,9 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import java.util.*; import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
...@@ -143,11 +147,13 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService { ...@@ -143,11 +147,13 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService {
} }
/** 下载任务执行计时器 */ /** 下载任务执行计时器 */
private Timer downloadTaskTimer = new Timer(); //private Timer downloadTaskTimer = new Timer();
ScheduledExecutorService deleteExpireTaskService = new ScheduledThreadPoolExecutor(1,
new BasicThreadFactory.Builder().namingPattern("deleteExpireTask-%d").daemon(true).build());
/** 启动自动清理下载任务服务 */ /** 启动自动清理下载任务服务 */
private void runDownloadCleanTask(Integer interval) { private void runDownloadCleanTask(Integer interval) {
this.downloadTaskTimer.schedule(new TimerTask() { deleteExpireTaskService.scheduleAtFixedRate(new Runnable() {
@Override @Override
public void run() { public void run() {
Calendar calc = Calendar.getInstance(); Calendar calc = Calendar.getInstance();
...@@ -160,8 +166,8 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService { ...@@ -160,8 +166,8 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService {
deleteDownloadTask(task.getId()); deleteDownloadTask(task.getId());
} // 遍历删除 } // 遍历删除
} // IF OVER } // IF OVER
} // run Define Over }
}, interval * 1000, interval * 1000);// 配置中的值为毫秒 }, interval*1000,interval*1000, TimeUnit.MILLISECONDS);
} }
......
...@@ -19,6 +19,7 @@ import com.google.common.collect.Lists; ...@@ -19,6 +19,7 @@ import com.google.common.collect.Lists;
import com.opencsv.CSVWriter; import com.opencsv.CSVWriter;
import com.opencsv.ResultSetHelper; import com.opencsv.ResultSetHelper;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
...@@ -34,6 +35,9 @@ import java.sql.*; ...@@ -34,6 +35,9 @@ import java.sql.*;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.Date; import java.util.Date;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
...@@ -351,11 +355,13 @@ public class FreeQueryServiceImpl implements IFreeQueryService { ...@@ -351,11 +355,13 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
private static SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss"); private static SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss");
/** 下载任务执行计时器 */ /** 下载任务执行计时器 */
private Timer downloadTaskTimer = new Timer(); //private Timer downloadTaskTimer = new Timer();
ScheduledExecutorService freeDownloadService = new ScheduledThreadPoolExecutor(1,
new BasicThreadFactory.Builder().namingPattern("freeDownloadTimer-%d").daemon(true).build());
/** 启动自助指标查询计划任务 */ /** 启动自助指标查询计划任务 */
private void runDownloadTask(Integer interval) { private void runDownloadTask(Integer interval) {
this.downloadTaskTimer.schedule(new TimerTask() { freeDownloadService.scheduleAtFixedRate(new Runnable() {
@Override @Override
public void run() { public void run() {
try { try {
...@@ -515,18 +521,21 @@ public class FreeQueryServiceImpl implements IFreeQueryService { ...@@ -515,18 +521,21 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
log.debug("自定义查询下载异常", e.getMessage()); log.debug("自定义查询下载异常", e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
} // run Define Over }
}, interval * 1000, interval * 1000);// 配置中的值为毫秒 }, interval*1000, interval*1000, TimeUnit.MILLISECONDS);
} }
/** 下载申请检查计时器 */ /** 下载申请检查计时器 */
private Timer applyTimer = new Timer(); //private Timer applyTimer = new Timer();
ScheduledExecutorService freeApplyService = new ScheduledThreadPoolExecutor(1,
new BasicThreadFactory.Builder().namingPattern("freeApplyTimer-%d").daemon(true).build());
/** 运行下载申请任务 /** 运行下载申请任务
* @param interval * @param interval
*/ */
private void runApplyTask(Integer interval) { private void runApplyTask(Integer interval) {
this.applyTimer.schedule(new TimerTask() { this.freeApplyService.scheduleAtFixedRate(new Runnable() {
@Override @Override
public void run() { public void run() {
List<DownloadTask> waitingTasks = DownloadTaskServiceImpl.getInstance().getDownloadTaskOfWaiting(QueryDataSource.FREE_QUERY); List<DownloadTask> waitingTasks = DownloadTaskServiceImpl.getInstance().getDownloadTaskOfWaiting(QueryDataSource.FREE_QUERY);
...@@ -578,9 +587,9 @@ public class FreeQueryServiceImpl implements IFreeQueryService { ...@@ -578,9 +587,9 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
} // IF OVER } // IF OVER
} // IF ELSE OVER } // IF ELSE OVER
} }
} // FOR OVER }
} // RUN OVER }
}, interval * 1000, interval * 1000);// 配置中的值为毫秒 }, interval*1000, interval*1000, TimeUnit.MILLISECONDS);
} }
......
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