门店号管理

dev_0531
LegnaYet 6 years ago
parent 6996268396
commit 1fe6b5aa6f

@ -510,6 +510,7 @@ public class EmployeeService {
turnBackDTO.setEaCode(""); turnBackDTO.setEaCode("");
if (CollectionUtils.isNotEmpty(followedUsers)){ if (CollectionUtils.isNotEmpty(followedUsers)){
turnBackDTO.setJoinTime(sdf.format(new Date()));
for (WxCpUserExternalContactInfo.FollowedUser followedUser:followedUsers){ for (WxCpUserExternalContactInfo.FollowedUser followedUser:followedUsers){
if (cpUserId.equals(followedUser.getUserId())){ if (cpUserId.equals(followedUser.getUserId())){
String state = followedUser.getState(); String state = followedUser.getState();

@ -1,67 +1,67 @@
package com.kiisoo.ic.job; //package com.kiisoo.ic.job;
//
import com.lmax.disruptor.*; //import com.lmax.disruptor.*;
import com.lmax.disruptor.dsl.Disruptor; //import com.lmax.disruptor.dsl.Disruptor;
import com.lmax.disruptor.dsl.EventHandlerGroup; //import com.lmax.disruptor.dsl.EventHandlerGroup;
import com.lmax.disruptor.dsl.ProducerType; //import com.lmax.disruptor.dsl.ProducerType;
//
import java.util.concurrent.*; //import java.util.concurrent.*;
//
public class Demo { //public class Demo {
//
public static void main(String[] args) throws InterruptedException, ExecutionException { // public static void main(String[] args) throws InterruptedException, ExecutionException {
long beginTime=System.currentTimeMillis(); // long beginTime=System.currentTimeMillis();
//
int BUFFER_SIZE=1024; // int BUFFER_SIZE=1024;
int THREAD_NUMBERS=4; // int THREAD_NUMBERS=4;
/* // /*
* createSingleProducerRingBuffer // * createSingleProducer创建一个单生产者的RingBuffer
* EventFactoryRingBuffer // * 第一个参数叫EventFactory从名字上理解就是“事件工厂”其实它的职责就是产生数据填充RingBuffer的区块。
* RingBuffer2 & // * 第二个参数是RingBuffer的大小它必须是2的指数倍 目的是为了将求模运算转为&运算提高效率
* RingBuffer( ) // * 第三个参数是RingBuffer的生产都在没有可用区块的时候(可能是消费者(或者说是事件处理器) 太慢了)的等待策略
*/ // */
final RingBuffer<DTOMessage> ringBuffer = RingBuffer.createSingleProducer(new EventFactory<DTOMessage>() { // final RingBuffer<DTOMessage> ringBuffer = RingBuffer.createSingleProducer(new EventFactory<DTOMessage>() {
@Override // @Override
public DTOMessage newInstance() { // public DTOMessage newInstance() {
return new DTOMessage(); // return new DTOMessage();
} // }
}, BUFFER_SIZE,new YieldingWaitStrategy()); // }, BUFFER_SIZE,new YieldingWaitStrategy());
//创建线程池 // //创建线程池
ExecutorService executors = Executors.newFixedThreadPool(THREAD_NUMBERS); // ExecutorService executors = Executors.newFixedThreadPool(THREAD_NUMBERS);
//创建SequenceBarrier // //创建SequenceBarrier
SequenceBarrier sequenceBarrier = ringBuffer.newBarrier(); // SequenceBarrier sequenceBarrier = ringBuffer.newBarrier();
//
//创建消息处理器 // //创建消息处理器
BatchEventProcessor<DTOMessage> transProcessor = new BatchEventProcessor<DTOMessage>( // BatchEventProcessor<DTOMessage> transProcessor = new BatchEventProcessor<DTOMessage>(
ringBuffer, sequenceBarrier, new DTOMessageHandler()); // ringBuffer, sequenceBarrier, new DTOMessageHandler());
//
//这一部的目的是让RingBuffer根据消费者的状态 如果只有一个消费者的情况可以省略 // //这一部的目的是让RingBuffer根据消费者的状态 如果只有一个消费者的情况可以省略
ringBuffer.addGatingSequences(transProcessor.getSequence()); // ringBuffer.addGatingSequences(transProcessor.getSequence());
//
//把消息处理器提交到线程池 // //把消息处理器提交到线程池
executors.submit(transProcessor); // executors.submit(transProcessor);
//如果存大多个消费者 那重复执行上面3行代码 把TradeTransactionInDBHandler换成其它消费者类 // //如果存大多个消费者 那重复执行上面3行代码 把TradeTransactionInDBHandler换成其它消费者类
//
Future<?> future=executors.submit(new Callable<Void>() { // Future<?> future=executors.submit(new Callable<Void>() {
@Override // @Override
public Void call() throws Exception { // public Void call() throws Exception {
long seq; // long seq;
for(int i=0;i<10000;i++){ // for(int i=0;i<10000;i++){
seq=ringBuffer.next();//占个坑 --ringBuffer一个可用区块 // seq=ringBuffer.next();//占个坑 --ringBuffer一个可用区块
//
//给这个区块放入 数据 如果此处不理解想想RingBuffer的结构图 // //给这个区块放入 数据 如果此处不理解想想RingBuffer的结构图
ringBuffer.get(seq).setPrice(Math.random()*9999); // ringBuffer.get(seq).setPrice(Math.random()*9999);
ringBuffer.get(seq).setName("张三" + i); // ringBuffer.get(seq).setName("张三" + i);
ringBuffer.publish(seq);//发布这个区块的数据使handler(consumer)可见 // ringBuffer.publish(seq);//发布这个区块的数据使handler(consumer)可见
} // }
return null; // return null;
} // }
}); // });
future.get();//等待生产者结束 // future.get();//等待生产者结束
Thread.sleep(1000);//等上1秒等消费都处理完成 // Thread.sleep(1000);//等上1秒等消费都处理完成
transProcessor.halt();//通知事件(或者说消息)处理器 可以结束了(并不是马上结束!!! // transProcessor.halt();//通知事件(或者说消息)处理器 可以结束了(并不是马上结束!!!
executors.shutdown();//终止线程 // executors.shutdown();//终止线程
//
System.out.println("总耗时:"+(System.currentTimeMillis()-beginTime)); // System.out.println("总耗时:"+(System.currentTimeMillis()-beginTime));
} // }
} //}

Loading…
Cancel
Save