From 34aecc69b4fe10deed2c2ee80986a9fb1bfa325a Mon Sep 17 00:00:00 2001 From: pelick <369447122@qq.com> Date: Mon, 18 Mar 2013 00:30:34 +0800 Subject: [PATCH] * tried control cmd * change pdf download into multi-thread --- .../zbf/search/tika/DownloadPublication.java | 36 +++++++++++++++---- project/src/zbf/search/util/ExecBatUtil.java | 26 ++++++++++++++ 2 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 project/src/zbf/search/util/ExecBatUtil.java diff --git a/project/src/zbf/search/tika/DownloadPublication.java b/project/src/zbf/search/tika/DownloadPublication.java index 886509b..ef03773 100644 --- a/project/src/zbf/search/tika/DownloadPublication.java +++ b/project/src/zbf/search/tika/DownloadPublication.java @@ -8,6 +8,8 @@ import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.util.ArrayList; +import java.util.List; import org.apache.pdfbox.pdmodel.interactive.viewerpreferences.PDViewerPreferences.PRINT_SCALING; @@ -19,9 +21,24 @@ import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.MongoClient; -public class DownloadPublication { +public class DownloadPublication extends Thread { public static final String PATH = "E://pdf/"; + private int num; + + public DownloadPublication(int num) { + this.num = num; + } + + @Override + public void run() { + try { + this.doDownload(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } public void doDownload() throws Exception { MongoClient mongoClient = new MongoClient("localhost", 30000); @@ -43,7 +60,7 @@ public class DownloadPublication { if (!f.exists()) { download(url, filepath); } else { - StdOutUtil.out("[Exits] " + filepath); + StdOutUtil.out("From Thread:" + num + " [Exits] " + filepath); } } } @@ -68,17 +85,24 @@ public class DownloadPublication { } os.close(); is.close(); - StdOutUtil.out("[Finished] " + filepath); + StdOutUtil.out("From Thread:" + num + " [Finished] " + filepath); } catch (IOException e) { // TODO Auto-generated catch block //e.printStackTrace(); - StdOutUtil.out("[Failed] " + filepath); + StdOutUtil.out("From Thread:" + num + " [Failed] " + filepath); } } public static void main(String[] args) throws Exception { - DownloadPublication dp = new DownloadPublication(); - dp.doDownload(); + ArrayList dppool = new ArrayList(); + int i = 4; + while (i > 0) { + dppool.add(new DownloadPublication(i)); + i --; + } + for (DownloadPublication dp : dppool) { + dp.start(); + } } } diff --git a/project/src/zbf/search/util/ExecBatUtil.java b/project/src/zbf/search/util/ExecBatUtil.java new file mode 100644 index 0000000..4c9325c --- /dev/null +++ b/project/src/zbf/search/util/ExecBatUtil.java @@ -0,0 +1,26 @@ +package zbf.search.util; + +import java.io.IOException; + + +public class ExecBatUtil { + public static void execBat(String batpath) { + Runtime runtime = Runtime.getRuntime(); + + try { + String[] args = new String[] { "cmd", "/c", "start", batpath }; + Process pro = runtime.exec(args); + System.out.println(pro.getInputStream()); + + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * @param args + */ + public static void main(String[] args) { + execBat("E://runspider.bat"); + } +}