diff --git a/htroot/WatchCrawler.html b/htroot/WatchCrawler.html index f4bd0cf75..85adcf871 100644 --- a/htroot/WatchCrawler.html +++ b/htroot/WatchCrawler.html @@ -12,6 +12,11 @@

Watch Crawler

Indexing Queue:
+

+Queue Size:     +Queue Max:     +PPM:     +
diff --git a/htroot/env/style.css b/htroot/env/style.css index 394421f3e..bcc4fb0ce 100644 --- a/htroot/env/style.css +++ b/htroot/env/style.css @@ -160,6 +160,9 @@ background-color: #bbcccc; .TableCellLight { background-color: #ddeeee; } +.TableCellActive { +background-color: #ffbbaa; +} .TableCellSummary { background-color: #ffbbaa; } diff --git a/htroot/js/WatchCrawler.js b/htroot/js/WatchCrawler.js index 3bebb50cc..b5c526cff 100644 --- a/htroot/js/WatchCrawler.js +++ b/htroot/js/WatchCrawler.js @@ -1,78 +1,102 @@ DELETE_STRING="delete" -function handleResponse(){ - if(http.readyState == 4){ - var response = http.responseXML; - indexingTable=document.getElementById("indexingTable"); - if(response != null){ - entries=response.getElementsByTagName("entry"); - } + +var statusRPC; +function requestStatus(){ + statusRPC=createRequestObject() + statusRPC.open('get', '/xml/status_p.xml'); + statusRPC.onreadystatechange = handleStatus; + statusRPC.send(null) +} +function requestIndexingQueue(){ + indexingQueueRPC=createRequestObject() + indexingQueueRPC.open('get', '/xml/queues/indexing_p.xml'); + indexingQueueRPC.onreadystatechange = handleIndexingQueue; + indexingQueueRPC.send(null); + +} +window.setInterval("requestStatus()", 5000); +window.setInterval("requestIndexingQueue()", 5000); + + + +//window.setInterval("sndReq('/xml/queues/indexing_p.xml')", 5000); + + +function handleStatus(){ + var statusResponse = statusRPC.responseXML; + indexingqueue=statusResponse.getElementsByTagName("indexingqueue")[0]; + indexingqueue_size=indexingqueue.firstChild.nextSibling; + indexingqueue_max=indexingqueue_size.nextSibling.nextSibling; + ppm=statusResponse.getElementsByTagName("ppm")[0]; + document.getElementById("indexingqueuesize").firstChild.nodeValue=indexingqueue_size.firstChild.nodeValue; + document.getElementById("indexingqueuemax").firstChild.nodeValue=indexingqueue_max.firstChild.nodeValue; + document.getElementById("ppm").firstChild.nodeValue=ppm.firstChild.nodeValue; +} +function handleIndexingQueue(){ + var indexingQueueResponse = indexingQueueRPC.responseXML; + indexingTable=document.getElementById("indexingTable"); + if(indexingQueueResponse != null){ + entries=indexingQueueResponse.getElementsByTagName("entry"); + } - //skip the Tableheade - row=indexingTable.firstChild.nextSibling.firstChild.nextSibling.nextSibling; + //skip the Tableheade + row=indexingTable.firstChild.nextSibling.firstChild.nextSibling.nextSibling; - while(row != null){ //delete old entries - indexingTable.firstChild.nextSibling.removeChild(row); - row=indexingTable.firstChild.nextSibling.firstChild.nextSibling.nextSibling; - } + while(row != null){ //delete old entries + indexingTable.firstChild.nextSibling.removeChild(row); + row=indexingTable.firstChild.nextSibling.firstChild.nextSibling.nextSibling; + } - dark=false; - for(i=0;i - + #{list}# #[initiator]# @@ -12,5 +12,5 @@ #(inProcess)#false::true#(/inProcess)# #{/list}# - + diff --git a/htroot/xml/status_p.java b/htroot/xml/status_p.java new file mode 100644 index 000000000..b362284ae --- /dev/null +++ b/htroot/xml/status_p.java @@ -0,0 +1,77 @@ +// /xml.queues/status_p.java +// ------------------------------- +// part of the AnomicHTTPD caching proxy +// (C) by Michael Peter Christen; mc@anomic.de +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004, 2005 +// +// last major change: 06.02.2006 +// this file is contributed by Alexander Schier +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// Using this software in any meaning (reading, learning, copying, compiling, +// running) means that you agree that the Author(s) is (are) not responsible +// for cost, loss of data or any harm that may be caused directly or indirectly +// by usage of this softare or this documentation. The usage of this software +// is on your own risk. The installation and usage (starting/running) of this +// software may allow other people or application to access your computer and +// any attached devices and is highly dependent on the configuration of the +// software which must be done by the user of the software; the author(s) is +// (are) also not responsible for proper configuration and usage of the +// software, even if provoked by documentation provided together with +// the software. +// +// Any changes to this file according to the GPL as documented in the file +// gpl.txt aside this file in the shipment you received can be done to the +// lines that follows this copyright notice here, but changes must not be +// done inside the copyright notive above. A re-distribution must contain +// the intact and unchanged copyright notice. +// Contributions and changes to the program code must be marked as such. + +// You must compile this file with +// javac -classpath .:../classes IndexCreate_p.java +// if the shell's current path is HTROOT + +//package xml.queues; +package xml; +import de.anomic.http.httpHeader; +import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; +import de.anomic.yacy.yacyCore; +import de.anomic.yacy.yacySeed; + +public class status_p { + + + public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { + // return variable that accumulates replacements + plasmaSwitchboard switchboard = (plasmaSwitchboard) env; + serverObjects prop = new serverObjects(); + prop.put("rejected", 0); + yacyCore.peerActions.updateMySeed(); + prop.put("ppm", yacyCore.seedDB.mySeed.get(yacySeed.ISPEED, "unknown")); + prop.put("indexingQueueSize", Integer.toString(switchboard.getThread("80_indexing").getJobCount()+switchboard.indexingTasksInProcess.size())); + prop.put("indexingQueueMax", Integer.toString(plasmaSwitchboard.indexingSlots)); + + // return rewrite properties + return prop; + } + +} + + + diff --git a/htroot/xml/status_p.xml b/htroot/xml/status_p.xml new file mode 100644 index 000000000..c589ea1fa --- /dev/null +++ b/htroot/xml/status_p.xml @@ -0,0 +1,9 @@ + + + #[ppm]# + + #[indexingQueueSize]# + #[indexingQueueMax]# + + +