如何设计一个优秀的小程序开发平台?
553
2022-10-28
easydc 一个简单易用的分布式计算框架
_______________ --------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
V1.0.1
Easydc
一个简单易用的分布式计算框架把一个大任务分割为多个子任务,分派给多个运算单元执行,最后合并各个子任务运算结果
使用说明
实例实现
一个进程只可以启动一个运算实例实例必须有一个唯一Id,可以使用uuid4生成实例注册时需要传出IP ,其余参数可选
hostname - 服务器host dockerName - docker 名称 cpu - cpu 使用比例 mem - 内存大小 weight - 子任务分派权重
实例启动时需传入执行实现,执行者实现参考下文代码示例参考__main__.py文件
启动实例
python -m easydc
执行者实现
执行者为业务代码最终实现执行者需要继承TaskExecutor,实现compute和merge方法
def compute(self,task): '''计算子任务 参数: task - 子任务 返回: 子任务运算结果 ''' def merge(self,tasks): '''合并任务 tasks - 子任务列表 '''
每个执行者有唯一的id用来区分业务, 例如:id = 'edc.crackmd5'强制关闭父任务,如果一个子任务计算完成,强制关闭其它子任务
self.ali.finishPTask(self.ptaskId) #强制关闭父任务 self.ali.checkFinished(self.ptaskId) #检查父任务是否完成
更新执行进度, 进度比例需要自己实现
self.ali.updateProcess(self.subTaskId,process)
代码示例参考executor.md5executor.py
###分割任务
一个任务分割为多个子任务调用分割接口实现分割功能
taskSplit = TaskSplit() bizType = '业务类型' #同执行ID bizPtask = '父业务信息' bizSubTasks = [] #子任务信息,定义任务分割规则 taskSplit.run(bizType,bizPtask,bizSubTasks)
代码示例参考split.py
分割任务
python split.py
监控任务
监控运算实例和任务运行情况
监控命令
python monitor.py --tick=5
监控页面
设计文档
分布式计算框架设计方案
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~