fix: 多线程修复

This commit is contained in:
zlg
2024-07-20 19:30:38 +08:00
parent 872845de23
commit 0ddbc554f8

View File

@@ -1,5 +1,7 @@
package com.schisandra.share.domain.service.impl;
import com.jd.platform.async.executor.Async;
import com.jd.platform.async.worker.WorkResult;
import com.jd.platform.async.wrapper.WorkerWrapper;
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
import com.schisandra.share.domain.convert.SchisandraShareCommentReplyBOConverter;
@@ -18,6 +20,11 @@ import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* 评论回复表 领域service实现了
@@ -90,16 +97,48 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS
public List<SchisandraShareCommentReplyBO> listComment(String detailId, String userId) {
List<SchisandraShareCommentReply> schisandraShareComments = schisandraShareCommentReplyService.listComment(detailId);
List<SchisandraShareCommentReplyBO> schisandraShareCommentBOS = SchisandraShareCommentReplyBOConverter.INSTANCE.convertEntityToBOList(schisandraShareComments);
List<WorkerWrapper> wrappers = new ArrayList<>();
schisandraShareCommentBOS.forEach(schisandraShareCommentReplyBO -> {
SchisandraUserLikesComment schisandraUserLikesComment =
schisandraUserLikesCommentService.queryByuserIdAndDetailId(schisandraShareCommentReplyBO.getId(), userId);
if(schisandraUserLikesComment!=null){
schisandraShareCommentReplyBO.setIsLike(true);
}
AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareCommentReplyBO.getUserId());
schisandraShareCommentReplyBO.setNick(userInfo.getNickName());
schisandraShareCommentReplyBO.setAvatar(userInfo.getAvatar());
WorkerWrapper<SchisandraShareCommentReplyBO,String > workerWrapper = new WorkerWrapper.Builder<SchisandraShareCommentReplyBO,String >()
.worker((SchisandraShareCommentReplyBO object, Map<String, WorkerWrapper> allWrappers) -> {
SchisandraUserLikesComment schisandraUserLikesComment =
schisandraUserLikesCommentService.queryByuserIdAndDetailId(object.getId(), userId);
if(schisandraUserLikesComment!=null){
object.setIsLike(true);
}
AuthUserInfoEntity userInfo = userRpc.getUserInfo(object.getUserId());
object.setNick(userInfo.getNickName());
object.setAvatar(userInfo.getAvatar());
return "success";
})
.param(schisandraShareCommentReplyBO)
.id(schisandraShareCommentReplyBO.getId())
.callback((boolean success, SchisandraShareCommentReplyBO param, WorkResult<String> workResult) ->
System.out.println("该线程"+Thread.currentThread().getName()))
.build();
wrappers.add(workerWrapper);
//
// SchisandraUserLikesComment schisandraUserLikesComment =
// schisandraUserLikesCommentService.queryByuserIdAndDetailId(schisandraShareCommentReplyBO.getId(), userId);
// if(schisandraUserLikesComment!=null){
// schisandraShareCommentReplyBO.setIsLike(true);
// }
// AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareCommentReplyBO.getUserId());
// schisandraShareCommentReplyBO.setNick(userInfo.getNickName());
// schisandraShareCommentReplyBO.setAvatar(userInfo.getAvatar());
});
try {
Async.beginWork(3500L,new ThreadPoolExecutor(10, 100, 5L,
TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()), wrappers);
} catch (ExecutionException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return schisandraShareCommentBOS;
}