欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Spring使用memcached,springmemcached,applicationC

来源: javaer 分享于  点击 16941 次 点评:175

Spring使用memcached,springmemcached,applicationC


applicationContext.xml配置文件:

    <?xml version="1.0" encoding="UTF-8"?>      <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"          xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"          xmlns:tx="http://www.springframework.org/schema/tx"          xsi:schemaLocation="              http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd              http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd              http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd              http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">                <!-- 读取项目的资源配置 -->          <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">              <property name="locations">                  <list>                      <value>classpath:jdbc.properties</value>                      <!-- <value>classpath:mail.properties</value> -->                      <!-- <value>classpath:memcached.properties</value> -->                  </list>              </property>          </bean>          <!-- JDBC数据源 -->          <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource">            <property name="driverClassName" value="com.mysql.jdbc.Driver" />            <property name="url" value="jdbc:mysql://localhost:3306/springtest" />            <property name="username" value="xuan" />            <property name="password" value="123456" />            <property name="testWhileIdle" value="true" />            <property name="testOnBorrow" value="true" />            <property name="testOnReturn" value="false" />            <property name="validationQuery" value="SELECT 1" />            <property name="validationInterval" value="30000" />            <property name="timeBetweenEvictionRunsMillis" value="30000" />            <property name="maxActive" value="100" />            <property name="minIdle" value="2" />            <property name="maxWait" value="10000" />            <property name="initialSize" value="4" />            <property name="removeAbandonedTimeout" value="60" />            <property name="removeAbandoned" value="true" />            <property name="logAbandoned" value="true" />            <property name="minEvictableIdleTimeMillis" value="30000" />            <property name="jmxEnabled" value="true" />          </bean>          <!-- 事务管理器 -->          <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">              <property name="dataSource" ref="dataSource" />          </bean>          <!-- 事务模板 -->          <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">              <property name="transactionManager" ref="transactionManager" />              <property name="timeout" value="10"></property>              <property name="isolationLevelName" value="ISOLATION_READ_COMMITTED"></property>          </bean>          <!-- 配置支持注解方式声明事务 -->          <tx:annotation-driven transaction-manager="transactionManager" />      </beans>  

在Java类文件使用:```java package com.grab.video.controller;

import java.io.BufferedOutputStream;  import java.io.BufferedReader;  import java.io.File;  import java.io.IOException;  import java.io.InputStreamReader;  import java.io.UnsupportedEncodingException;  import java.net.HttpURLConnection;  import java.net.MalformedURLException;  import java.net.URL;  import java.net.URLEncoder;  import java.nio.charset.Charset;  import java.sql.SQLException;  import java.sql.Timestamp;  import java.util.ArrayList;  import java.util.Date;  import java.util.List;  import java.util.concurrent.ExecutorService;  import java.util.concurrent.Executors;import javax.servlet.ServletContext;  import javax.servlet.ServletOutputStream;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpSession;import net.spy.memcached.MemcachedClient;import org.apache.commons.io.FilenameUtils;  import org.apache.commons.lang3.StringUtils;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.http.HttpHeaders;  import org.springframework.http.HttpStatus;  import org.springframework.http.MediaType;  import org.springframework.http.ResponseEntity;  import org.springframework.stereotype.Controller;  import org.springframework.web.bind.ServletRequestUtils;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RequestMethod;  import org.springframework.web.bind.annotation.ResponseBody;  import org.springframework.web.servlet.ModelAndView;  import org.springframework.web.servlet.view.RedirectView;import com.fasterxml.jackson.core.JsonGenerationException;  import com.fasterxml.jackson.databind.JsonMappingException;  import com.fasterxml.jackson.databind.ObjectMapper;@Controller  public class GrabVideoController {    private static final Logger LOG = LoggerFactory.getLogger(GrabVideoController.class);    private static String filePath="D:\\logs\\video";      //private static String filePath = "/home/grabVideo/";    @Autowired      private MemcachedClient memcachedClient;    @Autowired      ServletContext context;    /**      * 输入userid可以使用      *       * @param request      * @param response      * @return      */      @RequestMapping(value = "/grab/login", method = { RequestMethod.GET })      public ModelAndView login(HttpServletRequest request, HttpServletResponse response) {          String userId = ServletRequestUtils.getStringParameter(request, "userId", "");          String ts = ServletRequestUtils.getStringParameter(request, "ts", "");          String sign = ServletRequestUtils.getStringParameter(request, "sign", "");        ModelAndView mav = new ModelAndView();          // 身份验证          if (StringUtils.isNotBlank(userId)) {              String encryptedSign = EncryptionUtils.md5Hex(ts + userId + "grab");              if (sign.equals(encryptedSign)) {                  memcachedClient.set("userId", 5*24*60*60, userId);//缓存为有效时间为5日                  //HttpSession session = request.getSession();                  //session.setMaxInactiveInterval(5*24*60*60);//秒为单位,设置session周期为5天                  //session.setAttribute("userId", userId);// 把userId存放到session                  String url = "/grab/import";                  mav.setView(new RedirectView(url));                  return mav;              }          }        mav.setViewName("video/error");          return mav;      }    /**      * 导入文件      *       * @return      */      @RequestMapping(value = "/grab/import", method = { RequestMethod.GET })      public ModelAndView importFile(HttpServletRequest request, HttpServletResponse response) {          // String userId = ServletRequestUtils.getStringParameter(request,          // "userId", null);          ModelAndView mav = new ModelAndView();          //HttpSession session = request.getSession();        String userId = null;          if (memcachedClient.get("userId") != null) {              userId = (String) memcachedClient.get("userId");              SqlFileList sqlFileList = new SqlFileList();              List<FileListModel> list = new ArrayList<FileListModel>();              try {                  list = sqlFileList.selectDate(userId);              } catch (SQLException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }            // 从POLYV的API获取目录            mav.addObject("list", list);              mav.addObject("userId", userId);              mav.setViewName("video/import");              return mav;          }        mav.setViewName("video/login");          return mav;    }    /**      * 删除文件      *       * @param request      * @param response      * @return      */      @RequestMapping(value = "/grab/delete/file", method = { RequestMethod.GET })      public ResponseEntity<AjaxPostResponse> deleteFile(HttpServletRequest request,              HttpServletResponse response) {          String fileId = ServletRequestUtils.getStringParameter(request, "fileId", null);        MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));          HttpHeaders headers = new HttpHeaders();          headers.setContentType(mediaType);        SqlFileList sqlFileList = new SqlFileList();          try {              sqlFileList.deleteDate(fileId);          } catch (SQLException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }        AjaxPostResponse resp = new AjaxPostResponse("yes");          return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);      }    /**      * 解析文件      *       * @return      */      @RequestMapping(value = "/grab/analysis", method = { RequestMethod.GET })      public ResponseEntity<AjaxPostResponse> analysisFile(HttpServletRequest request,              HttpServletResponse response) {          Integer fileId = ServletRequestUtils.getIntParameter(request, "fileId", 0);          String fileUrl = ServletRequestUtils.getStringParameter(request, "fileUrl", "");          String classifyId = ServletRequestUtils.getStringParameter(request, "classifyId",                  "classifyId");          String classifyName = ServletRequestUtils.getStringParameter(request, "classifyName", "");          String userId = ServletRequestUtils.getStringParameter(request, "userId", null);        MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));          HttpHeaders headers = new HttpHeaders();          headers.setContentType(mediaType);        List<String> urlList = new ArrayList<String>();          List<String> titleList = new ArrayList<String>();          try {              URL url = new URL(fileUrl);              HttpURLConnection connection = (HttpURLConnection) url.openConnection();              BufferedReader reader = new BufferedReader(new InputStreamReader(                      connection.getInputStream(), "GBK"));            String line = null;              while ((line = reader.readLine()) != null) {                  String str = line;                  //                  String urlstr = str.substring(0, str.indexOf(","));                  String title = str.substring(str.lastIndexOf(",") + 1, str.length());                  //                  urlList.add(urlstr);                  titleList.add(title);              }        } catch (Exception e) {              // TODO Auto-generated catch block              LOG.info("文件解析失败:" + e);              e.printStackTrace();              AjaxPostResponse resp = new AjaxPostResponse("no");              return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);          }        // 更新状态          SqlFileList sqlFileList = new SqlFileList();          FileListModel file = new FileListModel();          file.setFileId(fileId);          file.setStatus("Y");          try {              sqlFileList.updateDate(file);          } catch (SQLException e1) {              // TODO Auto-generated catch block              LOG.info("文件状态修改成功:" + e1);              e1.printStackTrace();          }        // LOG.info("00000"+classifyName);          classifyName = classifyName.replace("-", "");          // LOG.info(classifyName);        // 添加数据          SqlVideoList sqlvideo = new SqlVideoList();          Date date = new Date();          Timestamp timeStamp = new Timestamp(date.getTime());          GetRandomString randomStr = new GetRandomString();          for (int i = 0; i < urlList.size(); i++) {              VideoListModel video = new VideoListModel();              video.setUserId(userId);              video.setUrl(urlList.get(i));// 视频源地址              video.setTitle(titleList.get(i));// 视频标题            String urlstr = urlList.get(i);              // String path=urlstr.substring(0, urlstr.indexOf("?"));              // String format=path.substring(path.lastIndexOf("."),              // path.length());//视频格式              // String baseName = FilenameUtils.getBaseName(urlstr);              String extendname = FilenameUtils.getExtension(urlstr);              if(extendname.contains("?")){                  extendname=extendname.substring(0,extendname.indexOf("?"));              }            if (StringUtils.isBlank(extendname)) {                  extendname = "mp4";              }              String trueName = randomStr.generateRandomString(15);              String filename = trueName + "." + extendname;              video.setTrueName(filename);// 用于下载使用的视频名称            video.setClassifyId(classifyId);              video.setClassifyName(classifyName.trim());              video.setStatus(VideoStatus.NO.getValue());// 等待、              video.setVid("");              video.setCreateTime(timeStamp);            try {                  sqlvideo.insertDate(video);// 添加数据库              } catch (SQLException e) {                  // TODO Auto-generated catch block                  LOG.info("添加数据库:" + e);                  e.printStackTrace();                  AjaxPostResponse resp = new AjaxPostResponse("no");                  return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);              }          }        AjaxPostResponse resp = new AjaxPostResponse("yes");          return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);      }    /**      * 获取下载进度      *       * @return      */      @RequestMapping(value = "/grab/download/progress", method = { RequestMethod.POST,              RequestMethod.GET })      public ResponseEntity<AjaxPostResponse> getProgress(HttpServletRequest request,              HttpServletResponse response) {          Integer id = ServletRequestUtils.getIntParameter(request, "videoId", 0);          String userId = ServletRequestUtils.getStringParameter(request, "userId", "test");          String urlstr = ServletRequestUtils.getStringParameter(request, "url", "");          String trueName = ServletRequestUtils.getStringParameter(request, "trueName", "");        MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));          HttpHeaders headers = new HttpHeaders();          headers.setContentType(mediaType);        // LOG.info("--id---"+id+"---u---"+userId);        int content = 1;          int length = 1;          int progress = 1;        // LOG.info("-------ccccc4------------"+session.getAttribute("fileSize"+id));          if (memcachedClient.get("fileSize" + String.valueOf(id)) == null) {              // 文件大小还没存进session中              List<TaskQueue> list = new ArrayList<TaskQueue>();              SqlTaskQueue stq = new SqlTaskQueue();              try {                  list = stq.selectDateOne(String.valueOf(id));              } catch (SQLException e2) {                  // TODO Auto-generated catch block                  LOG.info("查询文件大小" + e2);                  e2.printStackTrace();              }            if (list.size() > 0) {                  TaskQueue tQueue = list.get(0);                  content = tQueue.getFileSize();                  memcachedClient.set("fileSize" + String.valueOf(id),24*60*60, content);// 存进session              } else {                  URL url = null;                  try {                      url = new URL(urlstr);                      HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 进行连接握手                      connection.setRequestMethod("GET");// 请求方式                      content = (int) connection.getContentLength();                      memcachedClient.set("fileSize" + String.valueOf(id),24*60*60,content);//memcached                      // LOG.info("-------content------"+content);                  } catch (Exception e1) {                      // TODO Auto-generated catch block                      LOG.info("链接失败" + e1);                      e1.printStackTrace();                  }              }          } else {              // 文件大少在session中              String contentString = String.valueOf(memcachedClient.get("fileSize"                      + String.valueOf(id)));              // LOG.info("-------ccccc------------"+contentString);              content = Integer.parseInt(contentString.trim());          }        // 文件存储位置、文件命名处理          try {              // String path=urlstr.substring(0, urlstr.indexOf("?"));              // String name=path.substring(path.lastIndexOf("/")+1,              // path.length());              // String filename=name.trim();              String filename = trueName;            File file = new File(filePath, filename);            if (!file.exists()) {                  progress = (Integer) memcachedClient.get(userId + id);// 将当前下载进度存放到session中。              } else {                  length = (int) file.length();                  progress = length * 100 / content;                  // 将当前下载进度存放到session中。                  memcachedClient.set(userId + id,24*60*60,progress);                  LOG.info(id + "-------progress------" + progress);              }        } catch (Exception e) {              LOG.info("不能解析的路径:" + e);              AjaxPostResponse resp = new AjaxPostResponse(progress);              return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);          }        AjaxPostResponse resp = new AjaxPostResponse(progress);          return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);      }    /**      * 批量抓取视频(下载视频模块--根据视频源地址去抓取视频)管理      *       * @return      * @throws MalformedURLException      */      @RequestMapping(value = "/grab/download/manage", method = { RequestMethod.POST })      public ModelAndView grabDownloadVideo(HttpServletRequest request, HttpServletResponse response) {          int[] id = ServletRequestUtils.getIntParameters(request, "videoId");          String userId = ServletRequestUtils.getStringParameter(request, "userId", "test");          String[] urlstr = ServletRequestUtils.getStringParameters(request, "url");          String[] trueName = ServletRequestUtils.getStringParameters(request, "trueName");        int len = id.length;        List<TaskQueue> taskQueues = new ArrayList<TaskQueue>();          for (int i = 0; i < len; i++) {              TaskQueue tq = new TaskQueue();              tq.setTaskId(String.valueOf(id[i]));              tq.setVideoId(id[i]);              tq.setUserId(userId);              tq.setVideoUrl(urlstr[i]);              tq.setTrueName(trueName[i]);              taskQueues.add(tq);          }        SqlTaskQueue stq = new SqlTaskQueue();          SqlVideoList svl = new SqlVideoList();        // 把任务队列添加进数据库          if (taskQueues.size() > 0) {              // 存在有任务              for (int i = 0; i < taskQueues.size(); i++) {                  TaskQueue task = taskQueues.get(i);                  List<TaskQueue> taskList = new ArrayList<TaskQueue>();// 查询任务是否已存在                  try {                      taskList = stq.selectDateOne(task.getTaskId());                  } catch (SQLException e1) {                      // TODO Auto-generated catch block                      e1.printStackTrace();                  }                if (taskList.size() > 0) {                      // 该任务已存在                  } else {                      task.setFileSize(0);                      task.setProgress(0);                      task.setStatus("N");                      Date date = new Date();                      Timestamp timeStamp = new Timestamp(date.getTime());                      task.setCreateTime(timeStamp);                      try {                          stq.insertDate(task);                      } catch (SQLException e) {                          // TODO Auto-generated catch block                          LOG.info("下载任务添加失败!" + e);                          e.printStackTrace();                      }                  }              }          }        // 获取所有的任务队列          List<TaskQueue> workQueues = new ArrayList<TaskQueue>();          try {              workQueues = stq.selectDate(userId);          } catch (SQLException e) {              // TODO Auto-generated catch block              LOG.info("获取下载任务失败" + e);              e.printStackTrace();          }          // ExecutorService pool = Executors.newFixedThreadPool(3);          if (workQueues.size() > 0) {              for (int i = 0; i < workQueues.size(); i++) {                  String taskId = workQueues.get(i).getTaskId();                  String urltxt = workQueues.get(i).getVideoUrl();                  String filename = workQueues.get(i).getTrueName();                File saveFile = new File(filePath, filename);// 文件保存的位置                  File fileDir = new File(filePath);                  if (!fileDir.exists()) {                      fileDir.mkdirs();// 目录不存在创建目录                  }                  URL url = null;                  try {                      url = new URL(workQueues.get(i).getVideoUrl());                  } catch (MalformedURLException e) {                      // TODO Auto-generated catch block                      LOG.info("握手失败" + e);                      e.printStackTrace();                  }                if (url != null) {                      // 将下载任务线程,放入线程池中执行                      ExecutorService executor = (ExecutorService) context                              .getAttribute("DOWNLOAD_EXECUTOR");                      executor.submit(new DownloadVideo(url, saveFile, taskId));                      // pool.execute(new                      // DownloadVideo(url,saveFile,taskId));////////////////////////////////////                      VideoListModel vlm = new VideoListModel();                      vlm.setId(workQueues.get(i).getVideoId());                      vlm.setUserId(userId);                      vlm.setStatus(VideoStatus.WAIT.getValue());// 将状态改为等待                      try {                          svl.updateDate(vlm);                      } catch (SQLException e) {                          // TODO Auto-generated catch block                          LOG.info("更改下载状态失败" + e);                          e.printStackTrace();                      }                }              }          }          // 关闭线程池          // pool.shutdown();        // 重新查询视频列表          List<VideoListModel> list = new ArrayList<VideoListModel>();          try {              list = svl.selectDate(userId);          } catch (SQLException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }          ModelAndView mav = new ModelAndView();          mav.addObject("videolist", list);          mav.addObject("userId", userId);          mav.setViewName("video/download");          return mav;    }    /**      * 获取视频的下载进度()      * @param request      */      @RequestMapping(value="/grab/download/status",method = {RequestMethod.GET,RequestMethod.POST})      public @ResponseBody      ResponseEntity<String> downloadStatus(HttpServletRequest request, HttpServletResponse response)              throws JsonGenerationException, JsonMappingException, IOException {          String userId = null;          if (memcachedClient.get("userId") != null) {              userId = (String) memcachedClient.get("userId");              SqlVideoList sqlVideoList = new SqlVideoList();              List<VideoListModel> list = new ArrayList<VideoListModel>();              try {                  list = sqlVideoList.selectDate(userId);                  for (int i = 0; i < list.size(); i++) {                      VideoListModel model = list.get(i);                    String filename = model.getTrueName();                      File file = new File(filePath, filename);                    if (file.exists()) {                        int downloaded = (int) file.length();                          if (model.getFileSize() != 0) {                              System.out.println(model.getId()+"===n==="+model.getTrueName()+"===d==="+downloaded+"===s==="+model.getFileSize()+"===="+(long)downloaded * 100 /(long) model.getFileSize());                              model.setPercent((int) ((long)downloaded * 100 /(long) model.getFileSize()));                          }                    }                }                  ObjectMapper objectMapper = new ObjectMapper();                  String result = objectMapper.writeValueAsString(list);                MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));                  HttpHeaders headers = new HttpHeaders();                  headers.setContentType(mediaType);                  return new ResponseEntity<String>(result, headers, HttpStatus.OK);            } catch (SQLException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }        }          return null;    }    @RequestMapping(value = "/grab/download/manage", method = { RequestMethod.GET })      public ModelAndView grabVideo(HttpServletRequest request, HttpServletResponse response) {          // String userId = ServletRequestUtils.getStringParameter(request,          // "userId", "");          String userId = null;        ModelAndView mav = new ModelAndView();        if (memcachedClient.get("userId") != null) {              userId = (String) memcachedClient.get("userId");              SqlVideoList sqlVideoList = new SqlVideoList();              List<VideoListModel> list = new ArrayList<VideoListModel>();              try {                  list = sqlVideoList.selectDate(userId);              } catch (SQLException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }              mav.addObject("videolist", list);              mav.addObject("userId", userId);              mav.setViewName("video/download");              return mav;          }        mav.setViewName("video/login");          return mav;      }    /**      * 导出下载成功的视频      *       * @return      */      @RequestMapping(value = "/grab/export", method = { RequestMethod.GET })      public ModelAndView exportVideo(HttpServletRequest request, HttpServletResponse response) {          // String userId = ServletRequestUtils.getStringParameter(request,          // "userId", "");          String userId = null;          ModelAndView mav = new ModelAndView();        if (memcachedClient.get("userId") != null) {              userId = (String) memcachedClient.get("userId");              SqlVideoList sqlVideoList = new SqlVideoList();              List<VideoListModel> list = new ArrayList<VideoListModel>();              try {                  list = sqlVideoList.selectSuccessDate(userId);              } catch (SQLException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }              mav.addObject("videolist", list);              mav.addObject("userId", userId);              mav.setViewName("video/export");              return mav;          }        mav.setViewName("video/login");          return mav;      }    /**      * export导出文件      */      @RequestMapping(value = "/grab/export/csv", method = { RequestMethod.GET })      public void exportCsv(HttpServletRequest request, HttpServletResponse response) {          String userId = ServletRequestUtils.getStringParameter(request, "userId", "");        if (StringUtils.isNotBlank(userId)) {            SqlVideoList sqlVideoList = new SqlVideoList();              List<VideoListModel> list = new ArrayList<VideoListModel>();              try {                  list = sqlVideoList.selectSuccessDate(userId);              } catch (SQLException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }            // 导出txt文件              response.setContentType("text/plain");              String fileName = "videolist";              try {                  fileName = URLEncoder.encode("videolist", "UTF-8");              } catch (UnsupportedEncodingException e1) {                  // TODO Auto-generated catch block                  e1.printStackTrace();              }              response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");              BufferedOutputStream buff = null;              StringBuffer write = new StringBuffer();              String enter = "\r\n";              ServletOutputStream outSTr = null;              try {                  outSTr = response.getOutputStream(); // 建立                  buff = new BufferedOutputStream(outSTr);                  // 把内容写入文件                  if (list.size() > 0) {                      for (int i = 0; i < list.size(); i++) {                          write.append(list.get(i).getUrl());                          write.append(",");                          write.append(list.get(i).getTitle());                          write.append(",");                          write.append(list.get(i).getVid());                          write.append(enter);                      }                  }                  buff.write(write.toString().getBytes("UTF-8"));                  buff.flush();                  buff.close();              } catch (Exception e) {                  e.printStackTrace();              } finally {                  try {                      buff.close();                      outSTr.close();                  } catch (Exception e) {                      e.printStackTrace();                  }              }          }    }    /**      * 清空导出视频列表      * /grab/export/clean      */      @RequestMapping(value = "/grab/export/clean", method = { RequestMethod.GET })      public ResponseEntity<AjaxPostResponse> cleanVideo(HttpServletRequest request,              HttpServletResponse response) {        MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));          HttpHeaders headers = new HttpHeaders();          headers.setContentType(mediaType);        if (memcachedClient.get("userId") != null) {              String userId=(String) memcachedClient.get("userId");              SqlVideoList sqlVideoList=new SqlVideoList();              try {                  sqlVideoList.cleanDate(userId);              } catch (SQLException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }            //删除成功              System.out.println("删除成功!");              AjaxPostResponse resp = new AjaxPostResponse("yes");              return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);          }else{              //删除失败              System.out.println("删除失败!");              AjaxPostResponse resp = new AjaxPostResponse("no");              return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);          }    }    /**      * 删除视频      * /grab/export/clean      */      @RequestMapping(value = "/grab/delete/videoId", method = { RequestMethod.GET })      public ResponseEntity<AjaxPostResponse> deleteVideo(HttpServletRequest request,              HttpServletResponse response) {          String videoId = ServletRequestUtils.getStringParameter(request, "videoId", null);        MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));          HttpHeaders headers = new HttpHeaders();          headers.setContentType(mediaType);        if (StringUtils.isNotBlank(videoId)) {              SqlTaskQueue stq=new SqlTaskQueue();              SqlVideoList sqlVideoList=new SqlVideoList();              try {                  List<TaskQueue> list=stq.selectDateOne(videoId);                  if(list.size()>0){                      stq.deleteDate(videoId);//删除任务                  }                  sqlVideoList.deleteDate(videoId);//删除视频              } catch (SQLException e) {                  // TODO Auto-generated catch block                  System.out.println("删除失败"+e);                  e.printStackTrace();              }            //删除成功              AjaxPostResponse resp = new AjaxPostResponse("yes");              return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);          }else{              //删除失败              AjaxPostResponse resp = new AjaxPostResponse("no");              return new ResponseEntity<AjaxPostResponse>(resp, headers, HttpStatus.OK);          }    }}

```

相关栏目:

用户点评