طريقة الاتصال:
/** * عدد النقرات/الشهر (السنة) موضوع */public void enlyclickthread () {// get parameters string year = getPara ("year") ؛ // Statistics Set X List <String> Xlist = New ArrayList <Tring> () ؛ Xlist.add ("يناير") ؛ Xlist.add ("February") ؛ Xlist.Add ("March") ؛ Xlist.add ("April") ؛ Xlist.Add ("May") ؛ Xlist.add ("يونيو") ؛ Xlist.add ("يوليو") ؛ Xlist.add ("يوليو") ؛ Xlist.add ("August") ؛ Xlist.add ("سبتمبر") ؛ Xlist.add ("October") ؛ Xlist.add ("نوفمبر") ؛ Xlist.Add ("December") ؛ // Statistics Dataset List <integer> yList = new ArrayList <integer> () ؛ // statistics thread list <furner> threadlist = new ArrayList <Froof> () ؛ // code status code int threadstatuscode = 0 ؛ // counter int count = 0 ؛ // تحليل السجل الشهري لـ (int m = 1 ؛ m <= 12 ؛ m ++) {// جمع معلمات التاريخ <string> datelist = new ArrayList <String> () ؛ // string date = "" ؛ // تحديد عدد الأيام int int = calendarutil.weekformonth (integer.valueof (year) ، m) ؛ // تاريخ الجمع لـ (int i = 1 ؛ i <= days ؛ i ++) {if (i <= 9) {if (m <= 9) {date = year + "-0" + m + "-0" + i ؛ } آخر {date = year + "-" + m + "-0" + i ؛ }} آخر {if (m <= 9) {date = year + "-0" + m + "-" + i ؛ } آخر {date = year + "-" + m + "-" + i ؛ }} datelist.add (date) ؛ }. thread.start () ؛ حاول {// hibernate thread.sleep (1000l) ؛ } catch (interruptedException e) {E.PrintStackTrace () ؛ } threadlist.add (thread) ؛ } // الحصول على حالة مؤشر ترابط لـ (Thread T: قائمة مؤشرات الترابط) {if (t.getState (). }} // تحديد ما إذا كان قد تم تنفيذ جميع مؤشرات الترابط إذا (threadStatusCode == 12) {// تلقي المعلمات // list <map <string ، object >> list = readlogfilethread.list.sublist (0 ، 12) ؛ قائمة <map <string ، object >> list = readlogfilethReadByyear.List ؛ // تعيين المعلمات لـ (int p = 0 ؛ p <list.size () ؛ p ++) {count+= (int) list.get (p) .get ("clickCount") ؛ if (list. } آخر إذا (list.get (p) .get ("month"). يساوي ("02")) {yList.Add ((integer) list.get (p) .get ("clickcount")) ؛ } آخر إذا (list.get (p) .get ("month"). يساوي ("03")) {yList.Add ((integer) list.get (p) .get ("clickCount")) ؛ } if if (list.get (p) .get ("month"). equals ("04")) {yList.Add ((integer) list.get (p) .get ("clickcount")) ؛ } آخر إذا (list.get (p) .get ("month"). يساوي ("05")) {yList.Add ((integer) list.get (p) .get ("clickCount")) ؛ } آخر إذا (list.get (p) .get ("month"). يساوي ("06")) {yList.Add ((integer) list.get (p) .get ("clickCount")) ؛ } if if (list.get (p) .get (p) .get ("month"). equals ("07")) {yList.add ((integer) list.get (p) .get ("clickcount")) ؛ } آخر إذا (list.get (p) .get ("month"). يساوي ("08")) {yList.Add ((integer) list.get (p) .get ("clickCount")) ؛ } آخر إذا (list.get (p) .get ("month"). يساوي ("09")) {yList.Add ((integer) list.get (p) .get ("clickcount")) ؛ } if if (list.get (p) .get ("month"). equals ("10")) {yList.add ((integer) list.get (p) .get ("clickCount")) ؛ } if if (list.get (p) .get ("month"). equals ("11")) {yList.add ((integer) list.get (p) .get ("clickCount")) ؛ } if if (list.get (p) .get ("month"). equals ("12")) {yList.Add ((integer) list.get (p) .get ("clickCount")) ؛ }}} setattr ("TotalCount" ، count) ؛ setAttr ("x" ، Xlist) ؛ setattr ("y" ، ylist) ؛ RenderJson () ؛ }طريقة الخيوط:
package com.ninemax.util.loganalysis ؛ import java.io.bufferedreader ؛ import java.io java.Util.map ؛ استيراد com.ninemax.util.loganalysis.tool.constantutil ؛/** * لا يوجد لديه قيمة إرجاع * * @Author Darker * */الفئة العامة readlogfileThReadyear يمتد Thread {// Date Array List <String> clickdate ؛ // Data Data Super Public List <Map <String ، Object >> list = new ArrayList <map <string ، Object >> () ؛ public readlogfileThReadByyear (قائمة <Tring> clickDate) {this.clickDate = clickDate ؛ } / ** * قراءة انقر فوق ملف السجل * * مثال: article.click.2016-05-20.txt * * regurn * / public void run () {// استلام المعلمات خريطة <سلسلة ، كائن> map = new hashmap <string ، object> () ؛ // استخدم FileInputStream لقراءة ملفات الملف FileInputStream fis = null ؛ // استخدم inputStreamReader لتنقل البود inputStreamReader Reader = null ؛ // استخدم BufferedReader إلى BufferReaderer Bufreader = null ؛ // استخدم stringBuffer لتلقي ملف حاوية محتوى الملف StringBuffer buf = new StringBuffer () ؛ // نقرات/شهر int monthclick = 0 ؛ لـ (int i = 0 ؛ i <clickdate.size () ؛ i ++) {// الحصول على ملف clicklogfile = new file (constantutil.loglocation ، "article.click."+ clickDate.get (i)+ ".txt") ؛ // حدد ما إذا كان الملف موجودًا إذا (! clicklogfile.exists () || clicklogfile.isdirectory ()) {system.err.println (clickdate.get (i) + "الملف غير موجود ...") ؛ } آخر {try {// node dream fis = new FileInputStream (clicklogfile) ؛ // تحويل دفق القارئ = جديد inputStreamReader (FIS ، "UTF-8") ؛ // Process Dream bufreader = جديد BufferedReader (reader) ؛ // counter int count = 0 ؛ // قراءة خط السلسلة = "" ؛ // قراءة الملف بينما ((line = buFreader.ReadLine ())! = null) {count ++ ؛ // تلقي البيانات if (! line.equals (null) &&! line.equals ("")) {buf.append (line + "/n") ؛ }} if (count == 0) {count = 0 ؛ } آخر {count = count - 1 ؛ } monthclick += count ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {// أغلق الدفق ، حاول {bufreader.close () ؛ reader.close () ؛ fis.close () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }}}} map.put ("month" ، clickDate.get (0) .Subsequence (5 ، 7)) ؛ if (monthclick == 0) {map.put ("clickCount" ، 0) ؛ } آخر {map.put ("clickCount" ، monthclick) ؛ } // map.put ("ClickContent" ، buf.toString ()) ؛ list.add (map) ؛ }} 1 2Next صفحة اقرأ النص الكامل