Aufrufmethode:
/** * Anzahl der Klicks/Monat (Jahr) Thread */public void YearlyClickThread () {// Parameter String Jahr = getPara ("Jahr"); // Statistikdatensatz X List <string> xList = new ArrayList <string> (); xlist.add ("Januar"); XLIST.ADD ("Februar"); XLIST.ADD ("März"); XLIST.ADD ("April"); XLIST.ADD ("May"); XLIST.ADD ("June"); XLIST.ADD ("Juli"); XLIST.ADD ("Juli"); xlist.add ("August"); xlist.add ("September"); xlist.add ("Oktober"); XLIST.ADD ("November"); XLIST.ADD ("Dezember"); // Statistics Dataset Yliste <Ganzzahl> ylist = new ArrayList <Ganzzahl> (); // Statistik -Thread -Statusliste <Thread> threadList = new ArrayList <Thread> (); // Thread Status Code int threadStatuscode = 0; // Counter int count = 0; // monatliche Protokollanalyse für (int m = 1; m <= 12; m ++) {// Datumsparameterliste <string> datelist = new ArrayList <string> (); // String date = ""; // Bestimmen Sie, wie viele Tage int Tage = Calendarutil.weePFORMONTH (Integer.ValueOf (Jahr), m); // Kombinationsdatum für (int i = 1; i <= dage; i ++) {if (i <= 9) {if (m <= 9) {Date = Jahr + "-0" + m + "-0" + i; } else {Date = Jahr + "-" + m + "-0" + i; }} else {if (m <= 9) {Date = Jahr + "-0" + m + "-" + i; } else {Date = Jahr + "-" + m + "-" + i; }} datelist.add (Datum); } // Starten Sie den Thread -Thread = new ReadLogFilethreadByyear (Datelist); Thread.Start (); try {// hibernate thread.sleep (1000L); } catch (interruptedException e) {e.printstacktrace (); } threadList.add (Thread); } // Thread -Status für (Thread t: ThreadList) {if (t.getState (). ToString (). Equals ("Terminated") {ThreadStatusCode += 1; }} // Bestimmen Sie, ob alle Threads ausgeführt wurden, wenn (threadStatusCode == 12) {// Parameter empfangen // list <map <String, Objekt >> list = readLogFileSead.list.Sublist (0, 12); List <map <String, Objekt >> list = ReadLogFilethreadByyear.list; // Parameter für (int p = 0; p <list.size (); p ++) {count+= (int) list.get (p) .get ("clickCount"); if (list.get (p) .get ("monat"). Equals ("01") {ylist.add ((Integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("02") {ylist.add ((integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("03") {ylist.add ((integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("04") {ylist.add ((integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("05") {ylist.add ((integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("06") {ylist.add ((integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get (p) .get ("monat"). Equals ("07") {ylist.add ((Integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("08") {ylist.add ((Integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("09") {ylist.add ((integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("10") {ylist.add ((Integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("11") {ylist.add ((Integer) list.get (p) .get ("clickCount"); } else if (list.get (p) .get ("monat"). Equals ("12") {ylist.add ((Integer) list.get (p) .get ("clickCount"); }}} setAttr ("TotalCount", count); setAttr ("x", xlist); setAttr ("y", ylist); Renderjson (); }Threading -Methode:
Paket com.ninemax.util.Loganalysis; import Java.io.buffenedReader; Import Java.io.file; Import Java.io.fileinputStream; Import Java.io.ioException; importieren java.io.inputstreamreader; import. java.util.map; import com.ninemax.util.loganalysis.tool.constantutil;/** * MultitHreading hat keinen Rückgabewert * * @author dunkler * * */public class readLogFileadByyear erweitert Thread {// Array private list> klickdate; // Shared Data Public Static List <map <String, Objekt >> list = new ArrayList <map <String, Objekt >> (); public readLogFileThreadByyear (Liste <string> clickDate) {this.clickdate = clickDate; } / ** * Klicken Sie auf Protokolldatei * * * * Beispiel: article.click.2016-05-20.txt * * @return * / public void run () {// Parameter empfangen <String, Objekt> map = new HashMap <String, Objekt> (); // FileInputStream verwenden, um DateiinformationsdateieinputStream fis = null zu lesen. // InputStreamReader verwenden, um InputStreamReader Reader = NULL zu transcode; // Verwenden Sie BufferedReader, um Buffer BufferedReader bufeader = null zu buffer; // StringBuffer verwenden, um Dateiinhalt Container StringBuffer bufer zu empfangen, bufer bufer bufer (). StringBuffer (); // klicks/monat int monatclick = 0; für (int i = 0; i <clickdate.size (); i ++) {// Dateidatei klickLogfile = new Datei (constantil.loglocation, "article.click."+ clickDate.get (i)+ ".txt"); // Bestimmen Sie, ob die Datei existiert, wenn (! ClickLogfile.exists () || clickLogfile.isdirectory ()) {System.err.println (klickdate.get (i) + + "Die Datei existiert ..."); } else {try {// node stream fis = new FileInputStream (clickLogfile); // stream reader = new InputStreamReader (fis, "utf-8") konvertieren; // Prozess Stream bufeader = new bufferedReader (reader); // Counter int count = 0; // String line = "" lesen; // Datei lesen while ((line = bufreader.readline ())! = Null) {count ++; // Daten empfangen if (! Line.equals (null) &&! Line.equals ("") {buf.append (Zeile + "/n"); }} if (count == 0) {count = 0; } else {count = count - 1; } monatClick += count; } catch (Ausnahme e) {e.printstacktrace (); } endlich {// den Stream try {bufreader.close (); reader.close (); fis.close (); } catch (ioException e) {e.printstacktrace (); }}}} map.put ("monat", klickdate.get (0) .SubSequence (5, 7)); if (monatclick == 0) {map.put ("clickCount", 0); } else {map.put ("ClickCount", monatClick); } // map.put ("ClickContent", buf.toString ()); list.add (map); }} 1 2Next -Seite Lesen Sie den vollständigen Text