sybn sybn-util 项目说明文档 - 基于java的跨数据库联合查询

peekResult(...) 在全部 sql 完成前提前输出中间结果

2026-08-28
sybn
sql

  • content

说明

peekResult(...) 用于在全部 sql 执行完成前,提前输出少量中间结果到前端或日志中。

适用场景:

  1. 长流水线调试——想看某一步的中间结果,但不想等整个流水线跑完。
  2. 前端进度展示——在耗时 sql 执行过程中,先推送部分数据让用户看到进度。
  3. 日志记录——把关键中间步骤的结果记录到任务日志。

语法

peekResult(子sql)
  • 子sql 是一条完整的 select 语句,peekResult 会立即执行它并输出结果。
  • 子 sql 支持 mybatis 参数(${param} / #{param})和 @list} 变量替换。

例子

-- 在长流水线中提前查看中间结果
select * from big_table where dt = '2026-01-01';
peekResult(select count(*) as cnt from @last);
-- 上面的结果会立即输出到前端/日志,不影响后续执行
select * from @last where amount > 100;

输出位置

  1. 任务日志:结果会写入当前任务的 TaskLog,最多输出 1000 行。
  2. 前端进度:如果当前有 JobStatus,结果会作为 currentData 推送到前端,最多 1000 行。
  3. 控制台:如果没有任务上下文,结果会通过 logger.info 输出到控制台。

注意事项

  1. peekResult 不会消费或改变堆栈——它只是”偷看”一眼,不影响后续语句的数据流。
  2. 输出结果有 1000 行的上限,超出的部分会被截断。
  3. 子 sql 会优先从查询缓存中获取数据,避免重复查询。

Comments

暂不开放评论! 可微信联系