@Service
public class ReceiptsBatchServiceImpl implements ReceiptsBatchService
{
//private static final String REDISSON_RECEIPTS_BATCH_LOCK = "RECEIPTS_BATCH_LOCK_"; //批次处理全局锁
private static final String REDISSON_RECEIPTS_BATCH_NO_LOCK = "RECEIPTS_BATCH_NO_LOCK_"; //获取批次序号全局锁
private static final String REDIS_RECEIPTS_BATCH_NO_MAP = "RECEIPTS_BATCH_NO_MAP";//redis Map,保存各组线程的最新序号。key:分组关键字,value:组内最新分配的线程序号
private static final String REDIS_RECEIPTS_BATCH_STATUS_MAP = "RECEIPTS_BATCH_STATUS_MAP";//redis Map,保存线程处理状态。key:分组关键字_线程序号,value:状态值(Y/N)
private static final String BATCH_STATUS_Y = "Y"; //批次处理完成
private static final String BATCH_STATUS_N = "N"; //批次处理中
@Autowired
private RedissonClient redissonClient;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
//初始化全局锁,并给当前线
基于Redis和Redisson的分布式全局锁,实现并发请求分组排队处理(组内排队,不同组并行)
最新推荐文章于 2023-03-05 19:04:53 发布