mirror of
https://gitee.com/52itstyle/spring-boot-seckill.git
synced 2026-03-21 17:30:16 +00:00
码友<tukangzheng>的建议 引入disruptor高效队列
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user