content: package com.alimama.mdrill.topology;
  
  import java.util.Timer;
  import java.util.TimerTask;
  import java.util.concurrent.ExecutorService;
  import java.util.concurrent.LinkedBlockingQueue;
  import java.util.concurrent.ThreadPoolExecutor;
  import java.util.concurrent.TimeUnit;
  import java.util.concurrent.atomic.AtomicInteger;
  
  public class ShardThread {
  	//执行表的心跳
  	public ThreadPoolExecutor EXECUTE =new ThreadPoolExecutor(2, 7,1800l, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
  	//用户控制hdfs的下载并发
  	public ExecutorService EXECUTE_HDFS = new ThreadPoolExecutor(1,5,3600*6l, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
  	
  	public Timer[] TIMER_LIST={new Timer(),new Timer(),new Timer(),new Timer()};  
  
  	private  AtomicInteger index=new AtomicInteger(0);
      public void schedule(TimerTask task, long delay, long period) {
      	int pos=index.incrementAndGet();
      	if(pos>10000000)
      	{
      		index.set(0);
      	}
      	int i=pos%TIMER_LIST.length;
      	TIMER_LIST[i].purge();
      	TIMER_LIST[i].schedule(task, delay, period);
      }
      
      
      public int purge() {
      	int rtn=0;
      	for(Timer t:TIMER_LIST)
      	{
      		rtn+=t.purge();
      	}
      	return rtn;
      }
      
  
  
  
  }
  