From d87c73b472061f17a92920fe5a0d1f76e9426d67 Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Wed, 1 Mar 2017 22:24:34 +0800 Subject: [PATCH] change check-and-set to atomic sadd for redis DuplicateRemover #368 --- .../us/codecraft/webmagic/scheduler/RedisScheduler.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/scheduler/RedisScheduler.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/scheduler/RedisScheduler.java index 61551b13..59f4b3f4 100644 --- a/webmagic-extension/src/main/java/us/codecraft/webmagic/scheduler/RedisScheduler.java +++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/scheduler/RedisScheduler.java @@ -48,11 +48,7 @@ public class RedisScheduler extends DuplicateRemovedScheduler implements Monitor public boolean isDuplicate(Request request, Task task) { Jedis jedis = pool.getResource(); try { - boolean isDuplicate = jedis.sismember(getSetKey(task), request.getUrl()); - if (!isDuplicate) { - jedis.sadd(getSetKey(task), request.getUrl()); - } - return isDuplicate; + return jedis.sadd(getSetKey(task), request.getUrl()) > 0; } finally { pool.returnResource(jedis); }