有数web、schedule 常见问题预案
有数web、schedule 常见问题预案
1.schedule简介

1.1 schedule 服务主要提供两类能力:
a.接收并处理来自 web 服务的请求,主要包括:截图(缩略图)、推送消息、报告生成 word 文档等需要在无头浏览器打开页面进行业务处理的功能。
b.调度用户配置的各种定时任务,包括定时推送、缓存预加载、定时抽取、失败重试、超时预警等功能,schedule 会扫描对应的数据库定时日志表,然后调用 inner-web 对应的接口处理业务逻辑。
1.2 schedule 服务在容器内的 /logs 目录下为不同的功能各自单独记录了日志文件,针对遇到的不同问题,可以在对应的日志文件见检索到需要的调度信息或者错误日志。
dx youdata_schedule
bash
cd logs
tail -f info.2025xxxx-xxxx.log

1.3 介绍一些较常用到的日志文件对应的日志内容:
a.cache_task.log:记录定时刷新缓存的调度信息。
b.capture.log:记录无头浏览器处理截图、导出请求的队列上下文信息,如果遇到截图、推送等异常问题,也可以在这个日志文件中找到具体的无头浏览器链接地址,然后将域名信息替换为用户的域名,在匿名浏览器中打开,排查打开截图界面时,前后端是否存在异常。

c.cronMail.log:记录了报告、取数的定时推送信息,报告、取数失败的定时推送重试信息。
d.tableExtract.log:记录了秒级抽取、分钟级抽取信息,定时重跑信息,超时检查信息。
e.warning.log: 记录了度量预警调度信息。
f.performanceSummary.log: 记录了报告性能统计相关信息。
g.fetchSchedule.log:记录了各业务具体的定时任务调度信息,比如想排查刷新计划的调度,可以 grep 'cache_task' info.20250122-fetchSchedule.log, 将返回当天的刷新计划调度日志

h.other.log:记录了调用 inner-web 响应失败的请求信息。
i.surveyExtract.log: 记录了填报抽取的调度信息
2.常见问题预案
2.1 导出 & 推送 & 截图

a.web 调用 hc 发起异步导出请求
b.hc 接收到请求后,根据 web 传入的导出信息,通知 da 请求推送数据。
c.da 查询到数据后,分批次向 hc 推送数据。
d.hc 等到 da 数据全部推送完毕后,生成 excel 并上传至 store。
e.hc 调用 inner-web 服务的 /sendDoneMessage 接口通知 inner-web 更新导出任务的状态。
2.2 遇到导出、推送的问题,可以查询下面几张表查找报错日志或者 transId
a.dashboard_mail:记录了推送任务的配置信息,id 可以从推送列表接口返回的数组中获取

b.dashboard_mail_record:记录了推送任务的执行记录,定时推送会有多条 dashboard_mail_record,detail 字段和 message 字段会记录推送的失败信息 和 transId。dashboard_mail_record.mail_id 关联了dashboard_mail.id
c.export_excel_task:excel 导出的任务表,message 会记录推送的失败消息和 transId,通过 setting.dashboardMailRecordId 和 dashboard_mail_record 关联,可以通过如下 sql 根据 dashboardMailRecordId 找到 export_excel 表的记录
select * from export_excel_task where JSON_EXTRACT(setting, '$.dashboardMailRecordId') = 438121;
d.export_excel_sub_task:excel 导出的时候,会为每个 sheet 页创建子任务,同样可以在 message 字段中找到失败消息和 transId;
2.3 报告图表大数据导出问题:项目中心的报告导出页面有报告导出失败,这个时候可以从列表接口中找到对应失败导出的 transId,从而进一步定位问题。

以上内容对您是否有帮助?