package com.jackson.reservoir; import com.jackson.db.po.Proxy; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.concurrent.LinkedBlockingQueue; /** * Created by Jackson on 2016/11/17. * 用来存放可用proxy的池子 */ public class ProxyPool { private static Logger logger = LogManager.getLogger(ProxyPool.class.getName()); private LinkedBlockingQueue<Proxy> queue = new LinkedBlockingQueue<>(); public void offer(Proxy proxy){ if(!queue.contains(proxy)) queue.offer(proxy); logger.debug("插入proxy:host{},port{},可用数量{}",proxy.getHost(),proxy.getPort(), queue.size()); } public Proxy take(){ Proxy proxy = null; try { proxy = queue.take(); } catch (InterruptedException e) { logger.error(e.toString()); } logger.info("取出proxy host:{} port:{}",proxy.getHost(),proxy.getPort()); return proxy; } public Proxy poll(){ return queue.poll(); } public int size(){ return queue.size(); } }