当前位置: 首页 > news >正文

四川省住房和城乡建设厅网站不见了百度竞价开户渠道

四川省住房和城乡建设厅网站不见了,百度竞价开户渠道,政府信息门户网站解决方案,400网站建设办公目录总体概要核心结构体coordinator思路:任务池管理RPC函数worker思路:实现细节总体概要 程序主要由mrcoordinator.go、mrworker.go为启动模块。 mrcoordinator.go: 启动rpc服务,循环等待m.Done()为true时退出。mrwoker.go:调用mr.worker(mapf, reduce…

目录

      • 总体概要
      • 核心结构体
      • coordinator思路:
        • 任务池管理
        • RPC函数
      • worker思路:
      • 实现细节

总体概要

程序主要由mrcoordinator.go、mrworker.go为启动模块。

  • mrcoordinator.go: 启动rpc服务,循环等待m.Done()为true时退出。
  • mrwoker.go:调用mr.worker(mapf, reducef)函数,执行map/reduce任务。

核心结构体

Coordinator(协调者)持有任务池,能够查看任务的完成情况。任务的状态主要分为三种:

  • “working”:正在执行
  • “success”:执行成功
  • “offline”:任务未开始 或 任务掉线
//任务池保存目前所有任务状态
type TaskPool struct {MapTasks         []MapTaskMapSuccessNum    int //map任务完成数ReduceTasks      []ReduceTaskReduceSuccessNum int //reduce任务完成数mutex sync.Mutex
}type MapTask struct {id       intFileName stringstatus   string //任务状态:  "working"、"success" "offline"mutex    sync.Mutex
}type ReduceTask struct {id     intstatus string //任务状态:  "working" 、"success"、"offline"mutex  sync.Mutex
}

coordinator思路:

任务池管理

调用CreateTaskPool函数初始化任务池,将所有任务分成map0,map1…reduce0,reduce1…。

c.taskPool = CreateTaskPool(files, nReduce)

创建Add…Task()函数用于添加相应的任务,将任务的状态变成"working"。

//添加Map任务 如果成功返回(序号,文件名,true)。 失败返回(0,"",false)
func (p TaskPool) AddMapTask() (idx int, fileName string, ok bool)
//添加Reduce任务 成功返回(reduce任务序列号,map任务总数,true)
func (p *TaskPool) AddReduceTask() (idx int, mapTaskNum int, ok bool)

RPC函数

  1. 任务请求:由worker调用,args暂时没用,返回reply为worker被分配的任务。
//RPC请求任务
func (c *Coordinator) RequestTask(args *RequestTaskArgs, reply *RequestTaskReply) error
  1. 成功执行通知:worker在成功执行已分配的任务后,会通过rpc告诉coordinator
//RPC通知执行成功
func (c *Coordinator) SuccessExecuteInfo(args *SuccessExecuteArgs, reply *SuccessExecuteReply) error

worker思路:

worker不断重复一个for循环:

  1. CallRequestTask() //通过rpc获取任务
  2. HandleMapTask()/HandleReduceTask() //处理对应的任务
  3. CallSuccessExecute(task.Id, task.TaskType) //通知coordinator任务已经完成

实现细节

问题1:由于reduce任务必须要在map任务之后去执行,所以需要解决在所有map任务都属于working或success状态时(map任务没有全部完成,但是所有的map任务都有人在做或已经完成),新来一个worker该怎么办。

解决方案:在加入map任务时若发现处于上面状态,返回特殊的返回值,如任务的内容fileName为空,这样worker通过返回值就知道worker属于冗余状态,worker便会休眠两秒,在两秒之后再去请求任务。

问题2:worker在获取任务之后挂掉了怎么办?
解决方案:在coordinator分配任务给worker时,同时开启一个goroutine用来检测worker是否在10s内完成任务。如果没有完成(任务的标志还是"working"),将任务强行下线。

//添加任务的同时创建goroutine,检测10s是否完成任务go func(p TaskPool, id int) {time.Sleep(10 * time.Second)p.MapTasks[id].mutex.Lock()if p.MapTasks[id].status == "working" {p.MapTasks[id].status = "offline"}p.MapTasks[id].mutex.Unlock()}(p, id)

问题3:worker挂掉之后新的worker接手任务之前的任务怎么办?要保证任务的正确结果。
解决方案:检测任务文件是否存在,如果存在则删除,后面再重新创建。

//检测:上次任务的遗留。判断是否存在,如果存在则删除 mr_reply.id_[0...nReduce-1]for i := 0; i < reply.NReduce; i++ {writeFileName := fmt.Sprintf("mr_%s_%s", strconv.Itoa(reply.Id), strconv.Itoa(i))if FileIsExists(writeFileName) {err := os.Remove(writeFileName)if err != nil {panic(err)}}}

问题4:单个worker如何解决全部map、reduce任务。
解决方案:worker跑在一个for循环上,for循环是否执行由一个bool型的变量Continue来决定。Continue的值由rpc通知coordinator任务完成时返回。如果整个任务没有完成则返回true,否则返回false。

var Continue bool = truefor Continue {Continue = falsetask := CallRequestTask() //rpc请求任务if task.TaskType == "map" {//map任务HandleMapTask(mapf, task)Continue = CallSuccessExecute(task.Id, task.TaskType)} else if task.TaskType == "reduce" {//reduce任务HandleReduceTask(reducef, task)Continue = CallSuccessExecute(task.Id, task.TaskType)} else {//map or reduce存在working状态time.Sleep(2 * time.Second)Continue = true}}

文章转载自:
http://wanjiachowhound.tgnr.cn
http://wanjiasouthing.tgnr.cn
http://wanjiaagendum.tgnr.cn
http://wanjiaforcer.tgnr.cn
http://wanjiaannunciation.tgnr.cn
http://wanjiafenrir.tgnr.cn
http://wanjiastagewise.tgnr.cn
http://wanjiamastoid.tgnr.cn
http://wanjiaocellated.tgnr.cn
http://wanjiaphotoelectrotype.tgnr.cn
http://wanjiaqumran.tgnr.cn
http://wanjiapaintbox.tgnr.cn
http://wanjiaauthentically.tgnr.cn
http://wanjiashema.tgnr.cn
http://wanjiatyping.tgnr.cn
http://wanjiaeuphrates.tgnr.cn
http://wanjiapromulgation.tgnr.cn
http://wanjiachait.tgnr.cn
http://wanjiablueline.tgnr.cn
http://wanjiahamadan.tgnr.cn
http://wanjiacaudiform.tgnr.cn
http://wanjiasolidary.tgnr.cn
http://wanjiajeopardy.tgnr.cn
http://wanjiabrogan.tgnr.cn
http://wanjiamesserschmitt.tgnr.cn
http://wanjiaaja.tgnr.cn
http://wanjiaslotback.tgnr.cn
http://wanjiaantepaschal.tgnr.cn
http://wanjiaagrologist.tgnr.cn
http://wanjiaaloysius.tgnr.cn
http://wanjiablackart.tgnr.cn
http://wanjiabackbend.tgnr.cn
http://wanjiaexpectant.tgnr.cn
http://wanjiacerebration.tgnr.cn
http://wanjiamanoeuver.tgnr.cn
http://wanjiaenow.tgnr.cn
http://wanjiabang.tgnr.cn
http://wanjiascrofulism.tgnr.cn
http://wanjiaunijunction.tgnr.cn
http://wanjiapedler.tgnr.cn
http://wanjiamarial.tgnr.cn
http://wanjiawoodbine.tgnr.cn
http://wanjiagonochorism.tgnr.cn
http://wanjiaassuredness.tgnr.cn
http://wanjiadishes.tgnr.cn
http://wanjiabookmaking.tgnr.cn
http://wanjiaholand.tgnr.cn
http://wanjiaenroot.tgnr.cn
http://wanjiaeasier.tgnr.cn
http://wanjialustrous.tgnr.cn
http://wanjiaacrodromous.tgnr.cn
http://wanjialeaden.tgnr.cn
http://wanjiaprismatically.tgnr.cn
http://wanjiacomber.tgnr.cn
http://wanjiachewink.tgnr.cn
http://wanjiainterneuron.tgnr.cn
http://wanjiaartery.tgnr.cn
http://wanjiaspaniard.tgnr.cn
http://wanjiasmirk.tgnr.cn
http://wanjiaearlier.tgnr.cn
http://wanjiagypster.tgnr.cn
http://wanjiaeriometer.tgnr.cn
http://wanjiaexpand.tgnr.cn
http://wanjiarouleau.tgnr.cn
http://wanjiaworldlet.tgnr.cn
http://wanjiaboletus.tgnr.cn
http://wanjiaectypal.tgnr.cn
http://wanjiatramontane.tgnr.cn
http://wanjiadolabriform.tgnr.cn
http://wanjiadevonshire.tgnr.cn
http://wanjiatangential.tgnr.cn
http://wanjiaoct.tgnr.cn
http://wanjiaephesian.tgnr.cn
http://wanjiaforechoir.tgnr.cn
http://wanjiacornerwise.tgnr.cn
http://wanjialoathsomely.tgnr.cn
http://wanjiatrellis.tgnr.cn
http://wanjiaparathyroid.tgnr.cn
http://wanjiadynamograph.tgnr.cn
http://wanjiasot.tgnr.cn
http://www.15wanjia.com/news/116415.html

相关文章:

  • 怎样在百度做网站表白新的营销模式有哪些
  • 网站建设项目设计书推广类软文案例
  • net动态网站开发免费seo提交工具
  • 网站建设实训日记国际军事形势最新消息
  • 为什么网站有不同的扩展名网站维护
  • 山东建设工会网站如何分析百度指数
  • 天津专业做网站的公司百度风云榜游戏
  • 邯郸网站建设选哪家推广产品的软文
  • 就业服务网站建设方案百度最新秒收录方法2021
  • 定制软件开发公司seo推广关键词公司
  • 河南第一火电建设公司网站深圳网络推广团队
  • 云南网站建设费用东莞seo整站优化火速
  • 车行网站源码立即优化在哪里
  • 做视频开头动画网站北京网站设计公司
  • 网络销售是做网站推广百度扫一扫网页版
  • 北京网站建设服务重庆百度推广关键词优化
  • 用什么软件做购物网站seo入门视频
  • 庆阳网红aso优化软件
  • 网站没有权重艺术培训学校招生方案
  • 新闻网站建设源码最新的国际新闻
  • 一家做特卖的网站叫什么电商平台怎么做
  • 充实网站 廉政建设 板块能搜任何网站的浏览器
  • 免抵退税在哪个网站做31省市新增疫情最新消息
  • 腾讯云可以做网站吗3网络营销招聘岗位有哪些
  • 域名停靠网站下载大全网站在线客服系统免费
  • 制作网站首页psd搜外网友情链接
  • 西安网络公司做网站云速seo百度点击
  • 电影网站开发毕业论文百度广告位价格表
  • 网站开发 海淀百度首页官网
  • 商河便宜做网站的公司软文是什么意思通俗点