轻易云数据集成平台的目标平台调度者生命周期
轻易云为企业提供了一体化的数据处理流程,包括数据抽取、清洗、转换和转发。本文将详细解析“数据转换和写入”阶段的关键组件——目标平台调度者的生命周期和操作流程,以便于工程师更好地理解和实施数据集成方案。
数据转换和写入是数据集成的核心步骤,通常通过源平台的定时调度请求任务来实现。该过程包括以下步骤:
定时任务调度
- 调度者分配与配置:轻易云预设了20个调度者,通过Linux crontab实现每分钟的调度命令执行。用户可在配置页面指定“调度号”以分配特定调度者,优化性能,防止任务阻塞。
- 调度命令执行:每个调度者执行命令,根据“调度号”启动相应的集成方案。
集成方案遍历与调度命令生成
- 异步方案识别:遍历集成方案时,首先排除非异步方案。
- 调度命令创建:对于需要调度的方案,创建一个或多个调度命令,这些命令将根据crontab延迟执行。
调度命令执行与队列管理
- 调度命令激活:到达指定时间点后,激活调度命令,放入AsynDispatcher队列池中排队。
- 队列池任务消费:AsynDispatcher队列池处理排队的任务,包括确认任务启动条件、检查调度条件,以及执行调度工作。
适配器加载与任务调度
- 适配器加载:调度过程中首先加载源平台适配器。
- 任务调度执行&获取数据管理中数据:适配器初始化后,执行调度任务,包括插入调度日志、生成写入任务请求参数,获取数据后将数据标记为“队列中”状态,将新任务参数写入任务存储,将任务ID插入源任务队列池进行排队,最后插入调度结束日志。
异步队列池任务消费
异步队列池的任务消费是数据写入阶段的关键。以下是任务验证至执行的流程:
- 任务验证与条件检查:确认任务状态,检查调度条件,如有前置任务在执行则确保调度顺序和依赖性。满足调度条件后,系统调用方法执行调度工作。
- 适配器操作与任务执行:加载并初始化源平台适配器,执行调度方法,生成写入任务请求参数,获取数据后标记为“队列中”状态,将请求参数写入异步源任务存储,将任务ID插入源任务队列池。
数据写入
适配器完成任务调度后,接下来是实际的数据写入:
- 数据写入任务的执行:根据任务ID获取任务详细信息,适配器连接目标平台,成功后执行数据请求操作。
- 数据处理结果响应:适配器处理目标平台的响应数据,包括检查响应状态,处理成功或失败的响应,对成功响应的数据进行进一步处理。处理响应数据后,可能会触发回调配置,执行响应动作。
任务状态管理与日志记录
任务执行过程中,状态管理和日志记录是核心环节:
目标平台事件关联与触发
轻易云支持通过执行条件判断和事件关联配置,实现集成方案间的相互触发:
异步队列池中任务的执行过程
- 任务获取与验证:系统通过任务ID获取任务详情,包括执行所需参数。检查任务状态,如标记为错误或已完成则不再执行并从队列移除。
- 适配器连接与任务执行:确认任务有效后,检测与源平台的连接。连接成功后,调用适配器的invoke()方法,向目标平台发送请求并获取响应。
- 响应处理与数据加工:接收到源平台响应后,根据响应状态处理。成功的响应进入数据加工阶段,失败的响应触发错误处理流程。成功的响应可能触发脚本加工厂的调度方法,执行数据加工。
- 错误处理与任务重排:适配器执行过程中的错误,调用handleError方法处理。包括异常记录和判断是否需要重新排队。任务执行失败可能由临时问题造成,如网络不稳定,系统可能将任务重新放入队列稍后重试。
- 成功响应的后续处理:成功的响应,适配器处理响应数据,可能包括数据解析、格式化等,确保数据能被后续流程正确处理。处理完响应数据后,系统将数据存入数据存储,并更新任务状态。
- 任务完成后的事件触发:任务成功完成并处理响应数据后,系统可能再次调用脚本加工厂的事件,执行特定的后处理脚本,进一步加工或验证数据。