package com.geccocrawler.gecco.scheduler;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.geccocrawler.gecco.request.HttpRequest;
/**
* 线程安全的非阻塞FIFO队列
*
* @author huchengyi
*
*/
@Deprecated
public class SpiderScheduler implements Scheduler {
private static Log log = LogFactory.getLog(SpiderScheduler.class);
private ConcurrentLinkedQueue<HttpRequest> queue;
public SpiderScheduler() {
queue = new ConcurrentLinkedQueue<HttpRequest>();
}
@Override
public HttpRequest out() {
HttpRequest request = queue.poll();
if(request != null) {
if(log.isDebugEnabled()) {
log.debug("OUT:"+request.getUrl()+"(Referer:"+request.getHeaders().get("Referer")+")");
}
}
return request;
}
@Override
public void into(HttpRequest request) {
queue.offer(request);
if(log.isDebugEnabled()) {
log.debug("INTO:"+request.getUrl()+"(Referer:"+request.getHeaders().get("Referer")+")");
}
}
}