如何使用FastFoot轻松搞定JAVA的多任务处理(二)

本章节介绍如何使用FastFoot加速多表数据的读取

(一)应用场景

在实际工作中经常需要在系统启动时,把常用的代码表数据缓存到内存以减少系统在运行时对数据库的访问,以此来提高系统性能。但有时代码表比较多,启动加载会变得很慢,这种情形我们可以利用FastFoot简单而有效的提升读取数据的速度,加快系统启动的速度。

(二)FastFoot多表读取的使用方法

  • 首先我们依然是先创建任务列表。
  List<String> taskList = Arrays.asList("DM_TABLE_1", "DM_TABLE_2", "DM_TABLE_3","DM_TABLE_4", "DM_TABLE_5", "DM_TABLE_6");
  • 然后我们创建function函数,用来执行数据读取,我这里用mybatis来讲解,并我们假定所用的代码表结构相同。这里的codeMapper我们要先注入成类变量。
@Autowired
private DmMapper codeMapper;
--------------------------------------------------
Function<String,List<Code>> function =
       tableName -> codeMapper.selectAll(tableName);
  • Mybatis Mapper及XML定义如下
List<Code> selectAll(@Param("tableName")String tableName);
-----------------------------------------------------
<select id="selectAll" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from ${tableName}
</select>
  • 接下来我们可以调用FastFoot执行了,返回的结果就已经是我们需要的缓存数据了,是不是很简单。
Map<String, List<Code>> map = FastFoot.runTasks(taskList function);

(三)实践经验

FastFoot的执行效率比单线程执行平均快5-10倍,并且随任务数的增多,这种效果更明显。通过实际工作中的使用FastFoot进行数据表的初始化,可以简单又快速的提升服务器的启动速度。

猜你喜欢

转载自blog.csdn.net/qq_35210225/article/details/106627974