chore: redisson init

This commit is contained in:
CaptainB 2023-10-27 21:22:10 +08:00
parent 4894976eee
commit eb72d0d0e2
1 changed files with 6 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import com.fit2cloud.quartz.anno.QuartzScheduled;
import io.metersphere.project.domain.Project; import io.metersphere.project.domain.Project;
import io.metersphere.project.mapper.ProjectMapper; import io.metersphere.project.mapper.ProjectMapper;
import io.metersphere.sdk.constants.ApplicationNumScope; import io.metersphere.sdk.constants.ApplicationNumScope;
import io.metersphere.sdk.util.CommonBeanFactory;
import io.metersphere.sdk.util.LogUtils; import io.metersphere.sdk.util.LogUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.redisson.Redisson; import org.redisson.Redisson;
@ -22,8 +23,7 @@ public class NumGenerator {
private static StringRedisTemplate stringRedisTemplate; private static StringRedisTemplate stringRedisTemplate;
private static ProjectMapper projectMapper; private static ProjectMapper projectMapper;
public NumGenerator(Redisson redisson, StringRedisTemplate stringRedisTemplate, ProjectMapper projectMapper) { public NumGenerator(StringRedisTemplate stringRedisTemplate, ProjectMapper projectMapper) {
NumGenerator.redisson = redisson;
NumGenerator.stringRedisTemplate = stringRedisTemplate; NumGenerator.stringRedisTemplate = stringRedisTemplate;
NumGenerator.projectMapper = projectMapper; NumGenerator.projectMapper = projectMapper;
} }
@ -33,6 +33,10 @@ public class NumGenerator {
* @param scope 用例类型 * @param scope 用例类型
*/ */
public static long nextNum(String prefix, ApplicationNumScope scope) { public static long nextNum(String prefix, ApplicationNumScope scope) {
// 初始化
if (redisson == null) {
redisson = CommonBeanFactory.getBean(Redisson.class);
}
RIdGenerator idGenerator = redisson.getIdGenerator(prefix + "_" + scope.name()); RIdGenerator idGenerator = redisson.getIdGenerator(prefix + "_" + scope.name());
// 每次都尝试初始化容量为1只有一个线程可以初始化成功 // 每次都尝试初始化容量为1只有一个线程可以初始化成功
if (scope.equals(ApplicationNumScope.API_TEST_CASE)) { if (scope.equals(ApplicationNumScope.API_TEST_CASE)) {