IWorkloadStorable接口的实现

原创 2008年10月01日 21:33:00

 IWorkloadStorable接口:

Spider的主要工作之一就是处理访问过的和将要访问的站点的列表,称为作业。IWorkloadStorable接口定义的对象就可以存入和取出作业中的网页.

最主要的两个方法:

public String assignWorkload();//取出作业里的网页

public void addWorkload(String url);//向作业里存入网页;

除此以外,还有其他的一些方法和成员变量:

  1. package com.heaton.bot;
  2. /**
  3.  * This interface defines a class that can
  4.  * be used to store a spider's workload(作业).
  5.  * The Bot package currently supports two
  6.  * different workload stores:
  7.  *
  8.  * SpiderInternalWorkload - Stores the
  9.  *   contents of the workload in memory.
  10.  *
  11.  * SpiderSQLWorkload - Stores the contents
  12.  *   of the workload in an SQL database.
  13.  */
  14. public interface IWorkloadStorable {
  15.   /**
  16.    * A workload entry has a status of running
  17.    * if the spider worker is opening or downloading
  18.    * that page. This state usually goes to COMPLETE
  19.    * or ERROR.
  20.    */
  21.   public static final char RUNNING = 'R';
  22.   /**
  23.    * Processing of this URL resulted in an
  24.    * error.
  25.    */
  26.   public static final char ERROR = 'E';
  27.   /**
  28.    * This URL is waiting for a spider
  29.    * worker to take it on.
  30.    */
  31.   public static final char WAITING = 'W';
  32.   /**
  33.    * This page is complete and should not
  34.    * be redownloaded.
  35.    */
  36.   public static final char COMPLETE = 'C';
  37.   /**
  38.    * The status is unknown.
  39.    */
  40.   public static final char UNKNOWN = 'U';
  41.   /**
  42.    * Call this method to request a URL
  43.    * to process. This method will return
  44.    * a WAITING URL and mark it as RUNNING.
  45.    *
  46.    * @return The URL that was assigned(指定,分配).
  47.    * 相当于getworkload()。
  48.    */
  49.   public String assignWorkload();
  50.   /**
  51.    * Add a new URL to the workload, and
  52.    * assign it a status of WAITING.
  53.    *
  54.    * @param url The URL to be added.
  55.    */
  56.   public void addWorkload(String url);
  57.   /**
  58.    * Called to mark this URL as either
  59.    * COMPLETE or ERROR.
  60.    *
  61.    * @param url The URL to complete.
  62.    * @param error true - assign this workload a status of ERROR.
  63.    * false - assign this workload a status of COMPLETE.
  64.    */
  65.   public void completeWorkload(String url,boolean error);
  66.   /**
  67.    * Get the status of a URL.
  68.    *
  69.    * @param url Returns either RUNNING, ERROR
  70.    * WAITING, or COMPLETE. If the URL
  71.    * does not exist in the database,
  72.    * the value of UNKNOWN is returned.
  73.    * @return Returns either RUNNING,ERROR,
  74.    * WAITING,COMPLETE or UNKNOWN.
  75.    */
  76.   public char getURLStatus(String url);
  77.   /**
  78.    * Clear the contents of the workload store.
  79.    */
  80.   public void clear();
  81. }

其他几个方法不是常用到,倒是那几个状态变量可以留作理清思路之用。

That‘s OK!

 

接口的显式实现与隐式实现

我们在实现接口时,常常是类继承接口,然后在接口中实现相应的方法。代码如下: interface IOutput { void output(); } cl...
  • xxdddail
  • xxdddail
  • 2014年09月16日 08:33
  • 1994

C#接口的三种实现方式

public interface MyInterface { /// 下面三个方法的签名都是 /// .method public hidebysig news...
  • noetic_wxb
  • noetic_wxb
  • 2016年11月28日 20:23
  • 3871

抽象类可以只实现接口的一部分方法

一个类若只实现了接口的部分方法,那这个类就一定是一个抽象类. 反过来说,抽象类可以实现接口的部分方法或者一个方法也不实现. 例如, public interface Human { pub...
  • hhitom
  • hhitom
  • 2016年05月05日 09:42
  • 2180

Hadoop 实现Writable接口

MapReduce  里的键值对必须实现可序列化,以支持在网络中传输。 值必须实现 Writable接口,而键因为在Reduce阶段有排序任务,所以必须实现WritableComparable 接口。...
  • OOC_ZC
  • OOC_ZC
  • 2016年01月10日 22:30
  • 640

java 的接口可以实现接口吗?抽象类呢?

面试中可能会遇到这样的问题: 1.接口可以实现接口吗? ans:不可以. 2.抽象类可以实现接口吗? ans:可以...
  • jianjun4833
  • jianjun4833
  • 2017年05月15日 15:52
  • 3320

从头认识java-7.4 实现多重接口

这一章节我们来说一下接口另一个特性:多重接口。在平常,使用继承,我们只是继承某一类,只能够一种向上转型,但是在接口的使用方面,可以实现多个接口,然后实现多种的向上转型。 我们先上代码:package ...
  • raylee2007
  • raylee2007
  • 2015年11月08日 23:16
  • 3479

Java中 一个类实现了某接口 则必须实现该接口中的所有方法么?

Java中 一个类实现了某接口 则必须实现该接口中的所有方法么?  编程语言编程java 专业回答 JAVA时空 团队  woshidaniel 2015-09-23 22...
  • evilcry2012
  • evilcry2012
  • 2016年03月31日 15:39
  • 3447

visio实现接口UML图

visio画实现接口 手把手完成visio画一个接口加一个实现类,使用标准的UML实现接口的形状 1 首先画一个接口 2 改变接口的显示方式为类显示 3 画出实现类 4 右键 实现类选择【 形状...
  • dsw12521
  • dsw12521
  • 2014年03月04日 18:37
  • 2937

类继承父类并且实现接口

//定义第一个接口 interface Valuable{ public double getmoney(); } //定义第二个接口 interface Pretectable{ public ...
  • hpuxiaofang
  • hpuxiaofang
  • 2016年11月04日 21:54
  • 1632

Java 枚举:实现接口

http://blog.csdn.net/veryitman/article/details/7945949 所有的枚举类都继承自 Enum,因为 Java 不支持多继承,所以枚举无法继承其...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年06月23日 14:16
  • 1373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IWorkloadStorable接口的实现
举报原因:
原因补充:

(最多只允许输入30个字)