Class Crawler

  • All Implemented Interfaces:
    Interruptible, java.lang.AutoCloseable

    public final class Crawler
    extends java.lang.Object
    implements Interruptible
    This class handles the coordination between classes during the pre and post fetching of a page such as executing threads, calling to fetcher and manipulating the priority of a scheduled request.
    Author:
    Maksim Tkachenko, Truong Quoc Tuan, Ween Jiann Lee
    • Method Detail

      • builder

        public static Crawler.Builder builder()
        Creates a new instance of Builder.
        Returns:
        an instance of Builder.
      • buildDefault

        public static Crawler buildDefault()
        Builds a new default instance of Crawler.
        Returns:
        an instance of Crawler.
      • getScheduler

        public Scheduler getScheduler()
        Get the instance of scheduler used.
        Returns:
        the instance of scheduler used.
      • start

        public Crawler start()
        Starts the crawler by starting a new thread to poll for jobs.
        Returns:
        the instance of Crawler used.
      • startAndClose

        public Crawler startAndClose()
                              throws java.lang.Exception
        Starts the crawler by starting a new thread to poll for jobs and close it after the queue has reached 0.
        Returns:
        the instance of Crawler used.
        Throws:
        java.lang.Exception - if this resource cannot be closed.
      • interruptAndClose

        public void interruptAndClose()
                               throws java.lang.Exception
        Description copied from interface: Interruptible
        Interrupt a thread and then close it.
        Specified by:
        interruptAndClose in interface Interruptible
        Throws:
        java.lang.Exception - Exception.
      • close

        public void close()
                   throws java.lang.Exception
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.lang.Exception