diff --git a/src/main/java/com/itstyle/seckill/queue/disruptor/DisruptorUtil.java b/src/main/java/com/itstyle/seckill/queue/disruptor/DisruptorUtil.java index 1a9754e..2f313e5 100644 --- a/src/main/java/com/itstyle/seckill/queue/disruptor/DisruptorUtil.java +++ b/src/main/java/com/itstyle/seckill/queue/disruptor/DisruptorUtil.java @@ -12,16 +12,12 @@ import com.lmax.disruptor.dsl.Disruptor; */ public class DisruptorUtil { - static Disruptor disruptor = null; + static Disruptor disruptor; static{ SeckillEventFactory factory = new SeckillEventFactory(); int ringBufferSize = 1024; - ThreadFactory threadFactory = new ThreadFactory() { - public Thread newThread(Runnable runnable) { - return new Thread(runnable); - } - }; - disruptor = new Disruptor(factory, ringBufferSize, threadFactory); + ThreadFactory threadFactory = runnable -> new Thread(runnable); + disruptor = new Disruptor<>(factory, ringBufferSize, threadFactory); disruptor.handleEventsWith(new SeckillEventConsumer()); disruptor.start(); } diff --git a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventConsumer.java b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventConsumer.java index fbd1eca..77889e3 100644 --- a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventConsumer.java +++ b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventConsumer.java @@ -12,7 +12,8 @@ public class SeckillEventConsumer implements EventHandler { private ISeckillService seckillService = (ISeckillService) SpringUtil.getBean("seckillService"); - public void onEvent(SeckillEvent seckillEvent, long seq, boolean bool) throws Exception { + @Override + public void onEvent(SeckillEvent seckillEvent, long seq, boolean bool) { seckillService.startSeckil(seckillEvent.getSeckillId(), seckillEvent.getUserId()); } } diff --git a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventFactory.java b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventFactory.java index 0f84d5c..8549f43 100644 --- a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventFactory.java +++ b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventFactory.java @@ -8,7 +8,8 @@ import com.lmax.disruptor.EventFactory; */ public class SeckillEventFactory implements EventFactory { - public SeckillEvent newInstance() { + @Override + public SeckillEvent newInstance() { return new SeckillEvent(); } } diff --git a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventMain.java b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventMain.java index 5a21ba9..0e8df58 100644 --- a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventMain.java +++ b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventMain.java @@ -16,11 +16,7 @@ public class SeckillEventMain { public static void producerWithTranslator(){ SeckillEventFactory factory = new SeckillEventFactory(); int ringBufferSize = 1024; - ThreadFactory threadFactory = new ThreadFactory() { - public Thread newThread(Runnable runnable) { - return new Thread(runnable); - } - }; + ThreadFactory threadFactory = runnable -> new Thread(runnable); //创建disruptor Disruptor disruptor = new Disruptor(factory, ringBufferSize, threadFactory); //连接消费事件方法 diff --git a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventProducer.java b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventProducer.java index 8158108..8ded877 100644 --- a/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventProducer.java +++ b/src/main/java/com/itstyle/seckill/queue/disruptor/SeckillEventProducer.java @@ -9,12 +9,10 @@ import com.lmax.disruptor.RingBuffer; */ public class SeckillEventProducer { - private final static EventTranslatorVararg translator = new EventTranslatorVararg() { - public void translateTo(SeckillEvent seckillEvent, long seq, Object... objs) { - seckillEvent.setSeckillId((Long) objs[0]); - seckillEvent.setUserId((Long) objs[1]); - } - }; + private final static EventTranslatorVararg translator = (seckillEvent, seq, objs) -> { + seckillEvent.setSeckillId((Long) objs[0]); + seckillEvent.setUserId((Long) objs[1]); + }; private final RingBuffer ringBuffer;