轻易云数据集成平台源平台调度者生命周期详细解析
轻易云数据集成平台:源平台调度者生命周期详解
轻易云数据集成平台提供了完整的数据处理流程,包括数据抽取、清洗、转换及转发等关键步骤。本文将深入探讨“数据抽取”阶段的核心组件——源平台调度者的生命周期管理及操作流程,帮助开发工程师充分理解并有效实施数据集成方案。
定时任务调度
调度者分配与配置
轻易云平台预设了20个调度者(dispatcher-0至dispatcher-19),通过Linux crontab计划任务每分钟执行一次调度命令。在数据集成方案配置页面中,用户可以指定“调度号”来分配特定调度者,以优化性能和防止单个调度者的任务阻塞。
调度命令执行
每个调度者执行以下命令:
cd ./dispatcher && php dispatcher-[0~19] schedule:run
根据分配的“调度号”识别并启动相应的集成方案。
集成方案遍历与调度命令生成
异步方案识别
在遍历集成方案时,首先排除非异步方案,这些通常由事件触发或外部系统激活。
调度命令创建
对于需要调度的方案,将创建一个或多个调度命令,例如:
dispatch:datahub [task_id] --source --asyn
以及对应目标平台的调度命令。这些命令将根据crontab延迟执行。
补漏命令生成
如果集成方案配置了补漏措施,则会创建一个特殊的补漏命令,例如:
dispatch:datahub [task_id] --source --asyn --omission
按照配置的补漏crontab执行。
调度命令执行与队列管理
调度命令激活
到达指定时间点后,创建的调度命令将被激活,转化为特定格式并放入AsynDispatcher队列池中排队,等待处理。
队列池任务消费
AsynDispatcher队列池将对排队任务进行处理,包括确认任务启动条件、检查是否满足条件,并执行具体的工作。
适配器加载与任务调动
适配器加载
首先加载集成方案配置的源平台适配器。
任务调用执行
适配器初始化后,调用$adapter->dispatch()
方法完成具体任务,包括插入日志、生成请求参数、写入存储和排队等步骤。
异步队列池任务消费
异步队列池(AsynDispatcher)是数据抽取阶段核心。以下是从验证到执行详细步骤:
任务验证与条件检查
任务状态确认
消费前确认是否处于启动状态,并检查是否满足条件。这包括验证有无前置任务正在执行,以确保顺序性和依赖性。
条件满足后的处理
一旦确认满足所有条件,系统调用Instance::handleSourceDispatch
方法来执行工作。
适配器操作与实际运作
适配器加载与初始化
系统加载指定源平台适配器,并初始化参数。
执行适配器方法
初始化后,调用dispatch()
方法,包括插入开始日志、生成请求参数、写入存储和插入结束日志等步骤。
数据抽取与处理
适配器完成后涉及实际数据抽取和处理:
数据抽取过程
获取详情
根据ID,从异步源存储获取详细信息,包括请求参数等。
连接与操作
尝试连接到源平台,确保成功后,通过调用invoke()
方法完成具体操作。
数据加工转换
响应处理
处理响应数据,包括检查状态、成功或失败响应,以及进一步加工成功响应的数据。
加工转换
可能触发脚本加工厂,对数据进行加工和转换,以符合需求。
状态管理与日志记录
在过程中,其状态管理和日志记录至关重要:
状态更新
完成标记
完成后标记为“已完成”,确保正确跟踪结果。
错误重排
如失败,将记录异常并判断是否需重新排队。
日志记录
调动日志
从开始到结束记录详细日志,包括时间及重要变更信息。
适配器日志
记录操作过程中的连接状态、结果等,以便诊断优化。