VirtualThread

This commit is contained in:
2025-06-17 17:09:34 +08:00
parent 5f8c4fd6e6
commit 7d6c87cc74
8 changed files with 17 additions and 11 deletions

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.4</version> <version>3.3.5</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>com.ycwl</groupId> <groupId>com.ycwl</groupId>
@ -100,7 +100,7 @@
<!--mybatis plus和springboot整合--> <!--mybatis plus和springboot整合-->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.5</version> <version>3.5.5</version>
</dependency> </dependency>

View File

@ -96,7 +96,7 @@ public class WxPayServiceImpl implements WxPayService {
log.info("[微信支付]parse = {}", callbackResponse); log.info("[微信支付]parse = {}", callbackResponse);
// 更新订单信息 // 更新订单信息
new Thread(() -> { Thread.ofVirtual().start(() -> {
long orderId = Long.parseLong(callbackResponse.getOrderNo()); long orderId = Long.parseLong(callbackResponse.getOrderNo());
if (callbackResponse.isPay()) { if (callbackResponse.isPay()) {
orderBiz.paidOrder(orderId); orderBiz.paidOrder(orderId);
@ -105,7 +105,7 @@ public class WxPayServiceImpl implements WxPayService {
} else if (callbackResponse.isRefund()) { } else if (callbackResponse.isRefund()) {
orderBiz.refundOrder(orderId); orderBiz.refundOrder(orderId);
} }
}).start(); });
} catch (Exception e) { } catch (Exception e) {
throw new AppException(BizCodeEnum.ADVANCE_PAYMENT_CALLBACK_FAILED, e.toString()); throw new AppException(BizCodeEnum.ADVANCE_PAYMENT_CALLBACK_FAILED, e.toString());
} }

View File

@ -314,12 +314,12 @@ public class FaceServiceImpl implements FaceService {
FaceEntity face = faceRepository.getFace(faceId); FaceEntity face = faceRepository.getFace(faceId);
faceMapper.deleteById(faceId); faceMapper.deleteById(faceId);
faceRepository.clearFaceCache(faceId); faceRepository.clearFaceCache(faceId);
new Thread(() -> { Thread.ofVirtual().start(() -> {
sourceMapper.deleteNotBuyFaceRelation(face.getMemberId(), faceId); sourceMapper.deleteNotBuyFaceRelation(face.getMemberId(), faceId);
videoMapper.deleteNotBuyFaceRelations(face.getMemberId(), faceId); videoMapper.deleteNotBuyFaceRelations(face.getMemberId(), faceId);
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(face.getScenicId()); IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(face.getScenicId());
adapter.deleteFace(USER_FACE_DB_NAME+face.getScenicId().toString(), faceId.toString()); adapter.deleteFace(USER_FACE_DB_NAME+face.getScenicId().toString(), faceId.toString());
}).start(); });
return ApiResponse.success("删除成功"); return ApiResponse.success("删除成功");
} }

View File

@ -100,10 +100,10 @@ public class ScenicServiceImpl implements ScenicService {
if (i > 0) { if (i > 0) {
scenicAccountMapper.deleteByScenicId(id); scenicAccountMapper.deleteByScenicId(id);
IFaceBodyAdapter adapter = getScenicFaceBodyAdapter(id); IFaceBodyAdapter adapter = getScenicFaceBodyAdapter(id);
(new Thread(() -> { Thread.ofVirtual().start(() -> {
adapter.deleteFaceDb(id.toString()); adapter.deleteFaceDb(id.toString());
adapter.deleteFaceDb(USER_FACE_DB_NAME + id); adapter.deleteFaceDb(USER_FACE_DB_NAME + id);
})).start(); });
scenicMapper.deleteConfigByScenicId(id); scenicMapper.deleteConfigByScenicId(id);
scenicRepository.clearCache(id); scenicRepository.clearCache(id);
scenicFaceBodyAdapterMap.remove(id); scenicFaceBodyAdapterMap.remove(id);

View File

@ -610,7 +610,7 @@ public class TaskTaskServiceImpl implements TaskService {
} }
} }
videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId(), isBuy); videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId(), isBuy);
new Thread(() -> sendVideoGeneratedServiceNotification(taskId)).start(); Thread.ofVirtual().start(() -> sendVideoGeneratedServiceNotification(taskId));
} }
@Override @Override

View File

@ -103,13 +103,13 @@ public class VideoPieceGetter {
return; return;
} }
log.info("poll task: {}/{}", task, queue.size()); log.info("poll task: {}/{}", task, queue.size());
new Thread(() -> { Thread.ofVirtual().start(() -> {
try { try {
runTask(task); runTask(task);
} catch (Exception e) { } catch (Exception e) {
log.error("run task error", e); log.error("run task error", e);
} }
}).start(); });
} }
private void runTask(Task task) { private void runTask(Task task) {

View File

@ -31,6 +31,9 @@ spring:
multipart: multipart:
max-file-size: 500MB max-file-size: 500MB
max-request-size: 500MB max-request-size: 500MB
threads:
virtual:
enabled: true
web: web:
resources: resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

View File

@ -35,6 +35,9 @@ spring:
multipart: multipart:
max-file-size: 500MB max-file-size: 500MB
max-request-size: 500MB max-request-size: 500MB
threads:
virtual:
enabled: true
web: web:
resources: resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/