| 47 | try { |
| 48 | rateLimiter = cache_minutes.get(id, new Callable<RateLimiter>() { |
| 49 | @Override |
| 50 | public RateLimiter call() throws Exception { |
| 51 | if(warmupPeriod == null){ |
| 52 | return RateLimiter.create(permitsPerSecond/60);//每秒不超过N个任务被提交 例如100/60表示 每秒约1.666个令牌 |
| 53 | }else{ |
| 54 | //return RateLimiter.create(permitsPerSecond/60, 30, TimeUnit.SECONDS); // 30秒内逐步达到稳定速率 |
| 55 | return RateLimiter.create(permitsPerSecond/60, warmupPeriod, TimeUnit.SECONDS); // warmupPeriod秒内逐步达到稳定速率 |
| 56 | } |
| 57 | } |
| 58 | }); |
| 59 | } catch (ExecutionException e) { |
| 60 | // TODO Auto-generated catch block |