编辑
2024-10-15
学习记录
00

CompletionService介绍

CompletionService 是 Java 中用于管理和获取异步任务结果的一个接口,主要功能如下:

  • 任务管理:提供了一种机制来管理和监控一组异步任务。
  • 结果获取:允许以阻塞或非阻塞的方式获取已完成任务的结果。
  • 队列机制:内部通常使用一个队列来保存已完成的任务,方便按顺序处理结果。

典型实现: ExecutorCompletionService:这是 CompletionService 的一个常见实现,它结合了 Executor 和 CompletionService 的功能,可以提交任务并获取结果。

使用场景: 异步任务处理:适用于需要处理大量异步任务且关注任务完成顺序的应用场景。 结果收集:当需要按顺序收集多个异步任务的结果时非常有用。

CompletionService和CompletableFuture的区别

CompletionService 和 CompletableFuture 都是 Java 中用于处理异步计算的工具,但它们有一些不同之处:

  • CompletionService:主要用于管理一组任务并获取它们的结果。它提供了一个队列来保存已完成的任务,并允许以阻塞或非阻塞的方式获取这些任务的结果。典型实现如 ExecutorCompletionService。
  • CompletableFuture:是一个表示异步计算结果的容器类,支持组合多个异步操作,并提供了丰富的API来处理异步编程中的各种场景。它可以看作是对 Future 接口的扩展,同时集成了 CompletionService 的一些功能。

在实际开发中,根据需求选择合适的工具可以更好地组织异步任务的执行与结果处理。

编辑
2024-10-09
遇到的问题
00

问题

定时任务时直接使用WebSocketConfigurer注册端口时的Handler来发送消息后,重启项目出现了一个找不到Bean的异常

org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'defaultSockJsTaskScheduler' is expected to be of type 'org.springframework.scheduling.TaskScheduler' but was actually of type 'org.springframework.beans.factory.support.NullBean'

原因

定时任务使用webSocket发送消息,导致webSocket创建线程和定时任务创建线程冲突,从而定时任务创建线程失败,导致程序出错

编辑
2024-09-25
项目分享
00

安装wsl虚拟机

跳转查看这个文章

安装docker-desktop

官方下载地址 双击安装

编辑
2024-09-23
项目分享
00

vim/vi

基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

以下是普通模式常用的几个命令:

  • i -- 切换到输入模式,在光标当前位置开始输入文本。
  • x -- 删除当前光标所在处的字符。
  • : -- 切换到底线命令模式,以在最底一行输入命令。
  • a -- 进入插入模式,在光标下一个位置开始输入文本。
  • o:在当前行的下方插入一个新行,并进入插入模式。
  • O -- 在当前行的上方插入一个新行,并进入插入模式。
  • dd -- 剪切当前行。
  • yy -- 复制当前行。
  • p(小写) -- 粘贴剪贴板内容到光标下方。
  • P(大写)-- 粘贴剪贴板内容到光标上方。
  • u -- 撤销上一次操作。
  • Ctrl + r -- 重做上一次撤销的操作。
  • -- 保存文件。
  • -- 退出 Vim 编辑器。
  • ! -- 强制退出Vim 编辑器,不保存修改。
编辑
2024-09-23
项目分享
00

简介

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

在线使用

安装

# 安装 Docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun systemctl enable --now docker # 安装 docker-compose curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose # 验证安装 docker -v docker-compose -v # 如失效,自行百度~