Método de chamada:
/** * Número de cliques/mês (ano) thread */public void anulyClickThread () {// Get Parameters String ano = getPara ("ano"); // Conjunto de dados de estatísticas X LIST <String> xlist = new ArrayList <String> (); xlist.add ("janeiro"); xlist.add ("fevereiro"); xlist.add ("março"); xlist.add ("abril"); xlist.add ("May"); xlist.add ("junho"); xlist.add ("julho"); xlist.add ("julho"); xlist.add ("agosto"); xlist.add ("setembro"); xlist.add ("outubro"); xlist.add ("novembro"); xlist.add ("dezembro"); // DataSet Statistics. // Lista de status do thread de estatísticas <Thread> threadList = new ArrayList <Thread> (); // Código de status do thread int threadstatuscode = 0; // Counter int count = 0; // Análise mensal de log para (int m = 1; m <= 12; m ++) {// Lista de parâmetros de data de coleta <String> DATELIST = new ArrayList <String> (); // string date = ""; // determinar quantos dias int dias = calendarutil.weekformontnth (Integer.valueof (ano), m); // data de combinação para (int i = 1; i <= dias; i ++) {if (i <= 9) {if (m <= 9) {date = ano + "-0" + m + "-0" + i; } else {date = ano + "-" + m + "-0" + i; }} else {if (m <= 9) {date = ano + "-0" + m + "-" + i; } else {date = ano + "-" + m + "-" + i; }} datelist.add (data); } // Iniciar o thread Thread Thread = new ReadLogFileThReadByYear (Datelist); thread.start (); tente {// hibernate thread.sleep (1000l); } catch (interruptedException e) {e.printStackTrace (); } ThreadList.add (Thread); } // Obtenha o status do thread para (thread t: threadlist) {if (t.getState (). Tostring (). Igual ("terminado")) {threadstatuscode += 1; }} // Determine se todos os threads foram executados se (threadStatuscode == 12) {// Receba parâmetros // list <map <string, object >> list = readLogFileThread.list.sublist (0, 12); List <map <string, object>> list = readLogFileThReadByYear.List; // Defina parâmetros para (int p = 0; p <list.size (); p ++) {count+= (int) list.get (p) .get ("clickCount"); if (list.get (p) .get ("mês"). igual ("01")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("mês"). Equals ("02")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("03")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("04")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("05")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("06")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get (p) .get ("mês"). igual ("07")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("08")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("09")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("10")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("11")) {ylist.add ((integer) list.get (p) .get ("clickCount")); } else if (list.get (p) .get ("mês"). Equals ("12")) {ylist.add ((integer) list.get (p) .get ("clickCount")); }}} setAtTtr ("TotalCount", contagem); setattr ("x", xlist); setattr ("y", ylist); renderjson (); }Método de rosqueamento:
pacote com.ninemax.util.loganalysis; importar java.io.bufferedReader; importar java.io.file; importar java.io.fileInputStream; importar java.io.ioexception; importar java.io.inputreamreader; import.util.ArrayList; java.util.map; importar com.ninemax.util.loganalysis.tool.constantutil;/** * O multithreading não possui valor de retorno * * @author escuro * */public class LouadLogFilEThReadByYear estende thread {// date privist list <tring> clickdate; // Lista estática pública de dados compartilhados <map <string, object>> list = new ArrayList <map <string, object >> (); public ReadLogFileThReadByYear (List <String> clickDate) {this.ClickDate = clickDate; } / ** * Leia o arquivo de log * * * Exemplo: Artigo.Click.2016-05-20.txt * * @return * / public void run () {// Parâmetros de recebimento mapa <string, object> map = new hashmap <string, object> (); // Use FileInputStream para ler informações do arquivo FileInputStream fis = null; // Use o InputStreamReader para transcodificar InputStreamReader Reader = NULL; // Use BufferReader para buffer BufferReader bufreader = null; // Use StringBuffer para receber o contêiner de conteúdo do arquivo StringBuffer buf = new StringBuffer (); // cliques/mês int mês click = 0; para (int i = 0; i <clickdate.size (); i ++) {// Obtenha arquivo de arquivo clicklogfile = new File (constantutil.LogLocation, "article.Click."+ clickdate.get (i)+ ".txt"); // Determine se o arquivo existe se (! Clicklogfile.exists () || clicklogfile.isdirectory ()) {System.err.println (clickdate.get (i) + "o arquivo não existe ..."); } else {try {// fluxo de nó fis = new FileInputStream (clicklogfile); // Converter Stream Reader = new InputStreamReader (FIS, "UTF-8"); // PROCESSO PRONTRA BUFREADER = new BufferredReader (leitor); // Counter int count = 0; // leia string line = ""; // Leia o arquivo while ((line = bufreader.readline ())! = Null) {count ++; // Receba dados se (! Line.equals (null) &&! Line.equals ("")) {buf.append (line + "/n"); }} if (count == 0) {count = 0; } else {count = count - 1; } mês click += count; } catch (Exceção e) {e.printStackTrace (); } finalmente {// feche o fluxo tente {bufreader.close (); leitor.close (); fis.close (); } catch (ioexception e) {e.printStackTrace (); }}}} map.put ("mês", clickdate.get (0) .Subsequence (5, 7)); if (mensclick == 0) {map.put ("clickCount", 0); } else {map.put ("clickcount", mensal); } // map.put ("ClickContent", buf.toString ()); list.add (mapa); }} 1 2Next Page Leia o texto completo