change check-and-set to atomic sadd for redis DuplicateRemover #368

pull/611/head^2
yihua.huang 8 years ago
parent d6cd92b1a8
commit d87c73b472

@ -48,11 +48,7 @@ public class RedisScheduler extends DuplicateRemovedScheduler implements Monitor
public boolean isDuplicate(Request request, Task task) { public boolean isDuplicate(Request request, Task task) {
Jedis jedis = pool.getResource(); Jedis jedis = pool.getResource();
try { try {
boolean isDuplicate = jedis.sismember(getSetKey(task), request.getUrl()); return jedis.sadd(getSetKey(task), request.getUrl()) > 0;
if (!isDuplicate) {
jedis.sadd(getSetKey(task), request.getUrl());
}
return isDuplicate;
} finally { } finally {
pool.returnResource(jedis); pool.returnResource(jedis);
} }

Loading…
Cancel
Save