public void run() {
		PageRankJob job = null; //job being processed
		String keyword = null;
		
		try {Thread.sleep(2000);} catch (InterruptedException e){}
		
		
		try {
			while(!shutdown) {
				job = manager.getJob();
				if (job == null)
					shutdown = true;
				else { //process the job
					keyword = job.getKeyword();
					long startTime=System.currentTimeMillis();
					g.loadNodesScore(job.getNodeFileName());
					long nodeScoreTime = System.currentTimeMillis();
					pageRankPrior(job.getOutputFileName(), keyword, g);
					long endTime=System.currentTimeMillis();
					processedCnt++;
					if (log.isInfoEnabled() )
						log.info("MeshPaperPageRank-runPageRank: job # " + processedCnt + 
								" for keyword " + keyword + " the loading of nodes took " +
								(nodeScoreTime - startTime) +"ms and pagerank took " +
								(endTime - nodeScoreTime) +"ms");
				}
			} //end of while not shutdown loop
		} catch (Exception e) {
			log.error("An exception was caught when running pagerank for " +
					keyword + ". Exception: " + e.getMessage(), e);
		} finally {
			try {g.clear();} catch(Exception e){}
		}
	} //end of runPageRank