dtm_master_workflow
2016-08-05 15:47:58 0 举报
dtm_master_workflow是一种高效的工作流程管理工具,它通过将复杂的任务分解为可管理的子任务,帮助团队更有效地完成工作。该工具具有强大的自动化功能,可以自动分配任务,跟踪进度,并生成详细的报告。此外,dtm_master_workflow还提供了丰富的协作功能,团队成员可以在一个平台上共享信息,讨论问题,共同解决问题。通过使用dtm_master_workflow,团队可以提高工作效率,减少错误,提高项目成功率。总的来说,dtm_master_workflow是一个强大而灵活的工作流程管理工具,适用于各种规模的项目和组织。
作者其他创作
大纲/内容
是否是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 条评论
下一页