Commit dc9f574e authored by yihua.huang's avatar yihua.huang

update request

parent d56c681b
package us.codecraft.webmagic;
import java.util.HashMap;
import java.util.Map;
/**
* Request对象封装了待抓取的url信息。<br/>
* 在PageProcessor中,Request对象可以通过{@link us.codecraft.webmagic.Page#getRequest()} 获取。<br/>
......@@ -18,26 +21,29 @@ package us.codecraft.webmagic;
* String linktext = (String)page.getRequest().getExtra()[0];
* }
* </pre>
*
* @author code4crafter@gmail.com <br>
* Date: 13-4-21
* Time: 上午11:37
* Date: 13-4-21
* Time: 上午11:37
*/
public class Request {
private String url;
private Object[] extra;
/**
* 额外参数,可以保存一些需要的上下文信息
*/
private Map<String, Object> extras = new HashMap<String, Object>();
private double priority;
/**
* 构建一个request对象
* @param url 必须参数,待抓取的url
* @param extra 额外参数,可以保存一些需要的上下文信息
*
* @param url 必须参数,待抓取的url
*/
public Request(String url, Object... extra) {
public Request(String url) {
this.url = url;
this.extra = extra;
}
public double getPriority() {
......@@ -49,16 +55,18 @@ public class Request {
return this;
}
/**
* 获取预存的对象
* @return object[] 预存的对象数组
*/
public Object[] getExtra() {
return extra;
public Object getExtra(String key) {
return extras.get(key);
}
public Request putExtra(String key,Object value) {
extras.put(key,value);
return this;
}
/**
* 获取待抓取的url
*
* @return url 待抓取的url
*/
public String getUrl() {
......
......@@ -33,7 +33,7 @@ public class RedisScheduler implements Scheduler {
if (jedis.zrank(SET_PREFIX + task.getUUID(), request.getUrl()) == null) {
//使用List保存队列
jedis.rpush(QUEUE_PREFIX + task.getUUID(), request.getUrl());
jedis.zadd(SET_PREFIX + task.getUUID(), System.currentTimeMillis(), request.getUrl());
jedis.zadd(SET_PREFIX + task.getUUID(), request.getPriority(), request.getUrl());
}
pool.returnResource(jedis);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment