• 线程执行测试效果


    目录

    前言描述:

    主要得线程代码

    测试的地方里面的方法体进行的逻辑处理

    调用的时候:


    前言描述:

    主要是执行线程进行同步,简单的一个线程,后来废弃掉了,所以代码备份到这里

    主要得线程代码

    1. @Data
    2. private class SendCorpusRunnable implements Runnable {
    3. private Long newsId;
    4. private List eventInfoList;
    5. private Map> eventTagsMap;
    6. public SendCorpusRunnable(Long newsId, List eventInfoList,
    7. Map> eventTagsMap) {
    8. this.newsId = newsId;
    9. this.eventInfoList = eventInfoList;
    10. this.eventTagsMap = eventTagsMap;
    11. }
    12. @Override
    13. public void run() {
    14. try {
    15. NewsEventVo newsEventVo = TbmEventConvert.convertToCorpus(newsId, eventInfoList, eventTagsMap);
    16. newsEventFacade.save(newsEventVo);
    17. } catch (CorpusException e) {
    18. e.printStackTrace();
    19. }
    20. }
    21. }

    测试的地方里面的方法体进行的逻辑处理

    1. /**
    2. * 转换推送语料数据
    3. *
    4. * @param eventInfoList
    5. * @return
    6. */
    7. public static NewsEventVo convertToCorpus(Long newsId, List eventInfoList, Map> eventTagsMap) {
    8. NewsEventVo newsEventVo = new NewsEventVo();
    9. newsEventVo.setNewsId(newsId);
    10. if (CollectionUtils.isEmpty(eventInfoList)) {
    11. return newsEventVo;
    12. }
    13. List eventCalloutVoList = new ArrayList<>();
    14. eventInfoList.forEach(eventInfo -> {
    15. NewsEventVo.EventCalloutVo eventCalloutVo = new NewsEventVo.EventCalloutVo();
    16. if (StringUtils.isNotBlank(eventInfo.getEventFourthLevelCode())) {
    17. eventCalloutVo.setEventCode(eventInfo.getEventFourthLevelCode());
    18. }
    19. if (StringUtils.isNotBlank(eventInfo.getEventFourthLevel())) {
    20. eventCalloutVo.setEventName(eventInfo.getEventFourthLevel());
    21. }
    22. if (StringUtils.isNotBlank(eventInfo.getEventBasis())) {
    23. eventCalloutVo.setEventBasis(eventInfo.getEventBasis());
    24. }
    25. //提取标签主体
    26. List eventTagList = eventTagsMap.get(eventInfo.getId());
    27. List subjectList = new ArrayList<>();
    28. if (!CollectionUtils.isEmpty(eventTagList)) {
    29. eventTagList.forEach(eventTag -> {
    30. NewsEventVo.EventSubjectVo eventSubjectVo = new NewsEventVo.EventSubjectVo();
    31. eventSubjectVo.setSubjectName(eventTag.getTagName());
    32. if (StringUtils.isNotBlank(eventTag.getMainBasis())) {
    33. eventSubjectVo.setSubjectBasis(eventTag.getMainBasis());
    34. }
    35. subjectList.add(eventSubjectVo);
    36. });
    37. }
    38. eventCalloutVo.setSubjectList(subjectList);
    39. eventCalloutVoList.add(eventCalloutVo);
    40. });
    41. newsEventVo.setEventList(eventCalloutVoList);
    42. return newsEventVo;
    43. }

    调用的时候:

    1. // 发送语料平台,异步
    2. ThreadPoolExecutor threadPoolExecutor = ThreadPoolExecutorFactory.getThreadPoolExecutor();
    3. threadPoolExecutor.submit(new SendCorpusRunnable(newsId, tbmPopularFeelingsList, eventTagsMap));
    1. // 发送语料平台,异步
    2. ThreadPoolExecutor threadPoolExecutor = ThreadPoolExecutorFactory.getThreadPoolExecutor();
    3. threadPoolExecutor.submit(new SendCorpusRunnable(newsId, tbmPopularFeelingsList, eventTagsMap));

  • 相关阅读:
    “存量竞争” 体验为王,火山引擎边缘云助力内容社区破局
    LeetCode高频题79. 单词搜索,如果 word 存在于网格中,返回 true ;否则,返回 false
    P1164 小A点菜
    C进阶习题
    键盘按键Home & End的妙用
    使用R语言自带数据“USArrests”,利用K-means进行聚类分析。建议按照如下步骤进行
    Vue、Node.js
    Linux或Centos查看CPU和内存占用情况_top只能查看对应的命令_如何查看具体进程---linux工作笔记062
    useRef 与 createRef 区别
    HTTP代理是什么,有什么用?
  • 原文地址:https://blog.csdn.net/m0_59252007/article/details/126244502