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

json fix

parent e5f4b391
...@@ -40,6 +40,9 @@ public class Request implements Serializable { ...@@ -40,6 +40,9 @@ public class Request implements Serializable {
private double priority; private double priority;
public Request() {
}
/** /**
* 构建一个request对象 * 构建一个request对象
* *
...@@ -102,4 +105,12 @@ public class Request implements Serializable { ...@@ -102,4 +105,12 @@ public class Request implements Serializable {
public int hashCode() { public int hashCode() {
return url.hashCode(); return url.hashCode();
} }
public void setExtras(Map<String, Object> extras) {
this.extras = extras;
}
public void setUrl(String url) {
this.url = url;
}
} }
...@@ -40,8 +40,8 @@ public class RedisScheduler implements Scheduler { ...@@ -40,8 +40,8 @@ public class RedisScheduler implements Scheduler {
jedis.zadd(SET_PREFIX + task.getUUID(), request.getPriority(), request.getUrl()); jedis.zadd(SET_PREFIX + task.getUUID(), request.getPriority(), request.getUrl());
if (request.getExtras() != null) { if (request.getExtras() != null) {
String key = ITEM_PREFIX + DigestUtils.shaHex(request.getUrl()); String key = ITEM_PREFIX + DigestUtils.shaHex(request.getUrl());
byte[] serialize = JSON.toJSONBytes(request); byte[] bytes = JSON.toJSONString(request).getBytes();
jedis.set(key.getBytes(), serialize); jedis.set(key.getBytes(), bytes);
} }
} }
pool.returnResource(jedis); pool.returnResource(jedis);
...@@ -57,8 +57,8 @@ public class RedisScheduler implements Scheduler { ...@@ -57,8 +57,8 @@ public class RedisScheduler implements Scheduler {
String key = ITEM_PREFIX + DigestUtils.shaHex(url); String key = ITEM_PREFIX + DigestUtils.shaHex(url);
byte[] bytes = jedis.get(key.getBytes()); byte[] bytes = jedis.get(key.getBytes());
if (bytes != null) { if (bytes != null) {
Object o = JSON.parse(bytes); Request o = JSON.parseObject(new String(bytes),Request.class);
return (Request) o; return o;
} }
pool.returnResource(jedis); pool.returnResource(jedis);
return new Request(url); return new Request(url);
......
package us.codecraft.webmagic.scheduler; package us.codecraft.webmagic.scheduler;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import us.codecraft.webmagic.Request; import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Site;
...@@ -35,8 +34,11 @@ public class RedisSchedulerTest { ...@@ -35,8 +34,11 @@ public class RedisSchedulerTest {
return null; return null;
} }
}; };
redisScheduler.push(new Request("http://www.ibm.com/developerworks/cn/java/j-javadev2-22/"), task); Request request = new Request("http://www.ibm.com/developerworks/cn/java/j-javadev2-22/");
request.putExtra("1","2");
redisScheduler.push(request, task);
Request poll = redisScheduler.poll(task); Request poll = redisScheduler.poll(task);
System.out.println(poll);
} }
} }
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