码友<tukangzheng>的建议 引入disruptor高效队列

This commit is contained in:
小柒2012
2018-05-22 19:22:06 +08:00
parent 3c820872f0
commit 9fdf460eb4
11 changed files with 277 additions and 1 deletions

View File

@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RestController;
import com.itstyle.seckill.common.entity.Result;
import com.itstyle.seckill.common.entity.SuccessKilled;
import com.itstyle.seckill.queue.disruptor.DisruptorUtil;
import com.itstyle.seckill.queue.disruptor.SeckillEvent;
import com.itstyle.seckill.queue.jvm.SeckillQueue;
import com.itstyle.seckill.service.ISeckillService;
@Api(tags ="秒杀")
@@ -226,4 +228,32 @@ public class SeckillController {
}
return Result.ok();
}
@ApiOperation(value="秒杀柒(Disruptor队列)",nickname="科帮网")
@PostMapping("/startDisruptorQueue")
public Result startDisruptorQueue(long seckillId){
seckillService.deleteSeckill(seckillId);
final long killId = seckillId;
LOGGER.info("开始秒杀八(正常)");
for(int i=0;i<1000;i++){
final long userId = i;
Runnable task = new Runnable() {
@Override
public void run() {
SeckillEvent kill = new SeckillEvent();
kill.setSeckillId(killId);
kill.setUserId(userId);
DisruptorUtil.producer(kill);
}
};
executor.execute(task);
}
try {
Thread.sleep(10000);
Long seckillCount = seckillService.getSeckillCount(seckillId);
LOGGER.info("一共秒杀出{}件商品",seckillCount);
} catch (InterruptedException e) {
e.printStackTrace();
}
return Result.ok();
}
}