Skip to content

rruizher/web-crawler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About the application :

The application is all about harnessing the capabilities of below components to create a web crawler that can crawl any site.
So here we are mainly interested in getting the pin code of various areas/cities across India from a site called javataskforce.com.

#####This Application uses:

  • #####Apache CXF:

       making rest/http request to remote site and fetch the page.

  • #####JPA/Hibernate with HSQLDB

       using japa with hibernate to populate the HSQLDB with the information we are interested in

  • ####Apache Camel

       coordinating between cxf/jpa, leveraging many task that requires a lot of coding, creating routes that states what to do and when to do

#####Overview:

The Whole application is interconnected by camel routes, which are as follows (all routes are defined in camel-routes.xml)

  • #####states-invoke-route

      i)   invoke the crawler sevice to get state
      ii)   parse/process the states obtained
      iii) put them in another Queue
          iv)  stoe the states into HSQLDB
    
  • #####districts-invoke-route

      i)   pool the DB( HsqlDb) and get the State with some particular status(INITIAL)
      ii)  update the status of State to (IN_PROCESS)
      iii) invoke the crawler service to obtain districts for state
      iv)  parse/process the districts obtained
      v)   put them in another Queue
      vi)  store the districts into HSQLDB
      vii)  mark the state as processed (COMPLETED)
    
  • #####pincode-invoke-route i) pool the DB( HsqlDb) and get the District with some status(INITIAL) ii) update the status of District to (IN_PROCESS) iii) invoke the crawler service to obtain areas/cities for the fetched District iv) parse/process the areas/cities obtained v) put them in another Queue vi) store the area/city into HSQLDB vii) mark the district as processed (COMPLETED)

In a nutshell there are some routes which invokes a crawl url , the result of which is parsed/processed and then saved into the crawl Database

#####Configuring the application:

Scheduling configuation:
	   a) open camel-routes.xml and  change the cron in statement to a suitable time 
		quartz://myGroup/myTimerName?cron=30 06 00 03 08 ? 2016
	
	    b) open the camel-routing-policy.xml and  schedule time for
		i)  districts-invoke-route
		ii)  pincode-route-policy

#####Running the application:

a) mvn clean install
b) run the HSQL Database 
c) Go to hsqldb folder  
	  on Windows:
	  		i)  click db_sart.bat
	  on Unix/Linux
	  		i)  sh  db_start.sh
d) mvn exec:exec	  		
	this will execute com.javatask.Run

#####Monitoring : a) Application can be monitored using Jconsole at port 86764( port can be changed by changing the jmx setting in pom.xml) -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8764

	open Jsonsole and add
 		service:jmx:rmi:///jndi/rmi://127.0.0.1:8764/jmxrmi
 	
b) Monitoring HSQL DB
		- Windows Client ( 
	   		execute db_client.bat available in hsqldb folder

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 99.3%
  • Other 0.7%