主要说一下流程
1.业务代码
(创建一个接收的类 这里以CalculationTrigger为例
CalculationTrigger 应该有 事件标识 业务主键 等准备存取的字段
)
new redislock(lockKey,waitTime,outTime)
try{
CalculationTrigger calculationTrigger= new CalculationTrigger();
calculationTrigger.set...
setEx(key,time,value)
}catch{
}finally{
redislock.unlock();
}
2.触发器
handleMessage(message){
CalculationTrigger calculationTrigger= JackdonUtil.readValue(message) //用准备好的接受类 获取redis发布的报文
switch(calculationTrigger.事件标识){
case 事件1:
触发业务1;
break;
case 事件2:
触发业务2;
break;
...
}
}
3.触发的业务代码
new redislock(lockKey,waitTime,outTime)
try{
业务代码
}catch{
}finally{
redislock.unlock();
}
代码仅为流程提供支撑
redislock 我这里用的原因是业务中含有自动生成的编号 防止异常时重复key的存取