美文网首页
多任务分布式调度算法——合理分配任务资源

多任务分布式调度算法——合理分配任务资源

作者: 佑岷 | 来源:发表于2020-04-07 11:04 被阅读0次

问题:A网站抓取需要8个小时,B网站需要半个小时,如果A网站先开始那么B网站需要8个小时候才能执行到。如果A网站的紧迫性没那么高,只期望能慢慢的刷新譬如论坛网站,而B网站期望能尽快执行完毕。因此我们期望通过调配资源达到谋种和谐状态。
分析:若设置权重B权重高,A权重低,可以满足先执行B网站,但是如果A网站是循环任务,就会导致B网站永远获取不到资源。所以我们期望A网站每次执行的概率大,B网站执行任务的概率小。所以就转化为“权重to概率问题”。
设想方案参见:


调度方案

简述:A、B、C三个网站的任务,权重分别设为:2、3、5,它们衍生出来的抓取请求分别排队入A、B、C队列(当然也可以拓展深度、广度算法,比较简单可自行按需拓展)。


权重池

这个图是当前任务权重池,新来添加完成移除。


权重转概率
每个线程获取任务时根据当前权重池的所有权重,随机一个随机因子看会落到哪个范围,然后从该范围对应的权重队列中获取任务执行。
任务分布式调度时最后几个请求被多个节点并行获取并执行时,很难区分到底是哪一个线程最后执行完毕并通知任务结束。采用from_que/to_que这种方案比较优。
任务分布式调度

并且若某个节点的任务执行一半宕机后,还可以从to_que中将任务恢复并重新拉入from_que中供执行,这些请求需要追加一个retry_times属性,重试多次后需要记录到failed_record表,供问题分析。
还可以从队列中查看待执行的任务、正在执行的任务、需要重试的任务等等做统计和展示。

此方案是针对爬虫分布式多网站抓取所涉及也适用于类似分布式调度, 若有好的建议可以深入讨论分析~

相关文章

  • 多任务分布式调度算法——合理分配任务资源

    问题:A网站抓取需要8个小时,B网站需要半个小时,如果A网站先开始那么B网站需要8个小时候才能执行到。如果A网站的...

  • 【智能调度】调度模式抽象

    1. 什么是调度算法 调度算法定义:根据系统的资源分配策略所规定的资源分配算法。 最早对于调度算法的讨论来自于操作...

  • 常见的调度算法总结

    调度算法是指:根据系统的资源分配策略所规定的资源分配算法。 一、FCFS——先来先服务和短作业(进程)优先调度算法...

  • 【转】调度算法

    调度算法是指:根据系统的资源分配策略所规定的资源分配算法。 一、先来先服务和短作业(进程)优先调度算法 1. 先来...

  • 7.多任务-多线程-进程

    多任务-多线程-进程 并发:任务数多于CPU核数,通过调度算法,实现多任务一起执行,切换速度很快。宏观是任务同时运...

  • 第三章 处理机调度与死锁.

    常用调度算法 调度的实质就是一种资源分配。不同的系统和系统目标,通常采用不同的调度算法——适合自己的才是最好的。 ...

  • hadoop

    Hadoop构成 分布式存储HDFS 分布式计算MapReduce 资源调度引擎Yarn HDFS: 块级别的分布...

  • Nuttx Task Schedule

    调度概念 进程调度 按照某种调度算法从就绪队列中选取进程分配CPU,主要是协调对CPU等的资源使用。进程调度目标是...

  • 饭局排桌子,排出了分布式资源调度高级规则

    春节的时候,云宏君与小伙伴们在网红店门口探讨了一番DRS分布式资源调度。 春节一顿饭,吃懂了分布式资源调度 道理我...

  • 9_大数据之Yarn

    一 Yarn资源调度器  Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统...

网友评论

      本文标题:多任务分布式调度算法——合理分配任务资源

      本文链接:https://www.haomeiwen.com/subject/iyrgphtx.html