feat(sj_1.0.0): 1、修复号段模式生成ID异常问题 2、 生成snail job启动logo

This commit is contained in:
opensnail 2024-05-06 23:39:21 +08:00
parent 0bc657988a
commit 0e42e379b0
3 changed files with 37 additions and 26 deletions

View File

@ -25,7 +25,6 @@ import java.util.function.Consumer;
* @date : 2023-05-11 21:45
* @since 1.3.0
*/
@Slf4j
public class RpcClientInvokeHandler<R> implements InvocationHandler {
private final Consumer<R> consumer;
@ -62,7 +61,7 @@ public class RpcClientInvokeHandler<R> implements InvocationHandler {
sw.stop();
}
SnailJobLog.LOCAL.info("request complete requestId:[{}] 耗时:[{}ms]", snailJobRequest.getReqId(), sw.getTotalTimeMillis());
SnailJobLog.LOCAL.debug("request complete requestId:[{}] 耗时:[{}ms]", snailJobRequest.getReqId(), sw.getTotalTimeMillis());
if (async) {
return null;
} else {

View File

@ -76,12 +76,15 @@ public interface SystemConstants {
String REPORT_JOB_DISPATCH_RESULT = "/report/dispatch/result";
}
String LOGO = " ___ ___ _ \n" +
" | __|__ _ ____ _ | _ \\___| |_ _ _ _ _ \n" +
" | _|/ _` (_-< || | | / -_) _| '_| || |\n" +
" |___\\__,_/__/\\_, | |_|_\\___|\\__|_| \\_, |\n" +
" |__/ |__/ \n" +
" :: Snail Job :: (v{}) \n";
String LOGO = """
______ _ __ _____ __ \s
.' ____ \\ (_)[ | |_ _| [ | \s
| (___ \\_| _ .--. ,--. __ | | | | .--. | |.--. \s
_.____`. [ `.-. |`'_\\ :[ | | | _ | / .'`\\ \\| '/'`\\ \\\s
| \\____) | | | | |// | |,| | | | | |__' | \\__. || \\__/ |\s
\\______.'[___||__]'-;__[___|___] `.____.''.__.'[__;.__.' \s
:: Snail Job :: (v{}) \s
""";
/**
* 调度时长

View File

@ -109,7 +109,8 @@ public class SegmentIdGenerator implements IdGenerator, Lifecycle {
private void updateCacheFromDb() {
try {
List<SequenceAlloc> sequenceAllocs = sequenceAllocMapper
.selectList(new LambdaQueryWrapper<SequenceAlloc>().select(SequenceAlloc::getGroupName));
.selectList(new LambdaQueryWrapper<SequenceAlloc>()
.select(SequenceAlloc::getGroupName, SequenceAlloc::getNamespaceId));
if (CollectionUtils.isEmpty(sequenceAllocs)) {
return;
}
@ -184,18 +185,24 @@ public class SegmentIdGenerator implements IdGenerator, Lifecycle {
SegmentBuffer buffer = segment.getBuffer();
SequenceAlloc sequenceAlloc;
LambdaUpdateWrapper<SequenceAlloc> wrapper = new LambdaUpdateWrapper<SequenceAlloc>()
.set(SequenceAlloc::getMaxId, "max_id + step")
.setSql("max_id = max_id + step")
.set(SequenceAlloc::getUpdateDt, new Date())
.eq(SequenceAlloc::getGroupName, key.getKey())
.eq(SequenceAlloc::getNamespaceId, key.getValue());
if (!buffer.isInitOk()) {
sequenceAllocMapper.update(wrapper);
sequenceAlloc = sequenceAllocMapper.selectOne(new LambdaQueryWrapper<SequenceAlloc>().eq(SequenceAlloc::getGroupName, key));
sequenceAlloc = sequenceAllocMapper.selectOne(new LambdaQueryWrapper<SequenceAlloc>()
.eq(SequenceAlloc::getGroupName, key.getKey())
.eq(SequenceAlloc::getNamespaceId, key.getValue())
);
buffer.setStep(sequenceAlloc.getStep());
buffer.setMinStep(sequenceAlloc.getStep());//leafAlloc中的step为DB中的step
} else if (buffer.getUpdateTimestamp() == 0) {
sequenceAllocMapper.update(wrapper);
sequenceAlloc = sequenceAllocMapper.selectOne(new LambdaQueryWrapper<SequenceAlloc>().eq(SequenceAlloc::getGroupName, key));
sequenceAlloc = sequenceAllocMapper.selectOne(new LambdaQueryWrapper<SequenceAlloc>()
.eq(SequenceAlloc::getGroupName, key.getKey())
.eq(SequenceAlloc::getNamespaceId, key.getValue())
);
buffer.setUpdateTimestamp(System.currentTimeMillis());
buffer.setStep(sequenceAlloc.getStep());
buffer.setMinStep(sequenceAlloc.getStep());//leafAlloc中的step为DB中的step
@ -215,13 +222,15 @@ public class SegmentIdGenerator implements IdGenerator, Lifecycle {
}
SnailJobLog.LOCAL.debug("leafKey[{}], step[{}], duration[{}mins], nextStep[{}]", key, buffer.getStep(), String.format("%.2f", ((double) duration / (1000 * 60))), nextStep);
LambdaUpdateWrapper<SequenceAlloc> wrapper1 = new LambdaUpdateWrapper<SequenceAlloc>()
.set(SequenceAlloc::getMaxId, "max_id + " + nextStep)
.setSql("max_id = max_id + " + nextStep)
.set(SequenceAlloc::getUpdateDt, new Date())
.eq(SequenceAlloc::getGroupName, key.getKey())
.eq(SequenceAlloc::getNamespaceId, key.getValue());
sequenceAllocMapper.update(wrapper1);
sequenceAlloc = sequenceAllocMapper
.selectOne(new LambdaQueryWrapper<SequenceAlloc>().eq(SequenceAlloc::getGroupName, key));
sequenceAlloc = sequenceAllocMapper.selectOne(new LambdaQueryWrapper<SequenceAlloc>()
.eq(SequenceAlloc::getGroupName, key.getKey())
.eq(SequenceAlloc::getNamespaceId, key.getValue())
);
buffer.setUpdateTimestamp(System.currentTimeMillis());
buffer.setStep(nextStep);
buffer.setMinStep(sequenceAlloc.getStep());//leafAlloc的step为DB中的step