dtm_master_workflow
2016-08-05 15:47:58 0 举报
dtm_master_workflow是一个用于数据仓库ETL(Extract, Transform, Load)流程的自动化工具。它可以帮助用户在数据仓库中快速、准确地处理大量数据,提高数据处理的效率和质量。通过使用dtm_master_workflow,用户可以轻松地创建和管理各种数据转换任务,包括数据清洗、数据整合、数据计算等。此外,dtm_master_workflow还提供了丰富的可视化界面和强大的监控功能,使得用户可以方便地跟踪和监控整个ETL流程的执行情况。总之,dtm_master_workflow是一个强大而实用的数据仓库ETL工具,能够帮助用户快速完成复杂的数据处理任务。
作者其他创作
大纲/内容
是否是killed标记的子进程
Nonblock地read与Control进程相连的管道
创建全部子进程
内部小循环
是否shutdown所有子进程(Control指令之一)
Y
Color Legend
将子进程在共享内存中注销
N
为每个子进程创建一副Pipe
清空子进程对应的Pipe两端
共享内存操作
将每个Worker进程放入accept锁调度队列
end of while
对已存在子进程进行标记killed
创建Nonblock主服务Socket并开始Listen
主循环
标记当前所有非Control的子进程为killed
Master
向与Control相连的管道write响应
为新子进程在共享内存中登记
当前是否没有任何子进程Control除外
初始化共享内存,作用:进程间抢锁、子进程登记
有killed标记的子进程说明是被Master显式有意杀死的无需重启
如果收到reload信号则exec新的binary进行重启
创建新一批子进程
本地信号通信
end of Master
为每个子进程在共享内存中登记
复用上一个子进程的Pipe
创建Nonblock控制Socket并开始Listen
若为Worker且当前持有accept锁强制释放并移出调度队列
初始化signal handlersSIGTERM - shutdownSIGWINCH - reloadSIGALRM - loadconf
是否收到loadconf的signal
对退出子进程进行收割
对整个进程组Nonblock地waitpid
向所有子进程发送shutdown信号
主循环while 没有收到shutdown或reload的signal
向有killed标记的子进程(即老子进程)发送shutdown信号
处理Control指令
初始化accept锁调度队列
打开dtm.log日志文件
重启一个与退出子进程同类的子进程
有Control指令?
是否有子进程退出
pselect 100ms
执行本轮accept调度如果上一次Worker已经释放锁,让队列中的下一个Worker持有锁如果没有,do nothing
是否start所有子进程(Control指令之一)
网络通信
重新读取配置文件更新内存中的配置信息
如果为Worker则放入accept锁调度队列
本地管道通信
向当前所有非Control的子进程发送shutdown信号
读入配置文件将全部MySQL、Redis连接信息存入内存
创建全部子进程Control除外,因为已存在
收割所有退出的子进程
0 条评论
下一页