package com.ruoyi.other.distributedservice;
|
|
import com.ruoyi.common.redis.annotation.DistributedLock;
|
import com.ruoyi.other.api.domain.TechnicianSubscribe;
|
import com.ruoyi.other.service.TechnicianSubscribeService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @Desecription: 技师业务分布式锁业务处理
|
* 由于service被事务包裹,因此需要单独建立包来存放分布式锁业务,
|
* 分布式锁不能在业务方法中执行
|
* 事务隔离问题: 如果将分布式锁放在业务方法内部,并且业务方法处于事务中,那么在事务提交之前,分布式锁可能无法释放,导致其他事务无法获取到该锁,从而造成死锁或长时间的阻塞。
|
* @Autor: luofl
|
* @Date: 2024/11/26 16:50
|
*/
|
@Service
|
public class DistributedTechnicianService {
|
@Resource
|
private TechnicianSubscribeService technicianSubscribeService;
|
|
@DistributedLock(lockNamePre = "#TECHNICIAN_SUBSCRIBE_LOCK", lockNamePost = "#technicianId")
|
public void subscribe(TechnicianSubscribe technicianSubscribe,Long technicianId){
|
technicianSubscribeService.subscribe(technicianSubscribe);
|
}
|
}
|