调度任务计划(积分只给回答最满意者,希望没有得到的,不要介意)

韩誉 2019-11-19 09:34:59
哪位大(神)牛(人)做过任务调度的设计?我想知道设计思路。

控制软件会按照定时、定条件启动任务,定时启动很容易实现了。
定条件有时是满足一个设备返回的状态;
有时是满足2个设备的状态;
这里定义的任务是不确定多少,定义的启动条件也不确定多少。
如果按一条一条判断,可能错过启动时间。
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
韩誉 2019-11-19
  • 打赏
  • 举报
回复
感谢解答。可能我要另开个帖子,直接上代码最好了
wanghui0380 2019-11-19
  • 打赏
  • 举报
回复
引用
定条件有时是满足一个设备返回的状态; 有时是满足2个设备的状态; 这里定义的任务是不确定多少,定义的启动条件也不确定多少。 如果按一条一条判断,可能错过启动时间。
你这个描述,其实就是STORM 里面的拓扑图,或者说是tensorflow的有向图 https://blog.csdn.net/yangyangmyself/article/details/52346859 看到这里的描述没有,任务就是任务,执行就是执行,你并不需要操心错过启动时间(没有错过启动时间的说法,他已经发出了,他会执行,你只是需要知道执行状态去控制去控制,是否继续等待,是否放弃,是否重试等策略)
wanghui0380 2019-11-19
  • 打赏
  • 举报
回复
总结一下,我建议。 计划只管计划,执行只管执行。 你可以说“每天凌晨3点,给我把那100家的日统计表计算一遍”,然后,没有然后了。不要去管谁去执行,不要去管上面A条件,B条件,C条件。计划就是计划 而执行的那些群集服务器则是,谁有空就执行。按照“紧急,重要,必要,必须,一般”的顺序去执行 同时为了避免一件事情占用过多,在任务规划上,他事情变成很小的原子操作。把这些原子操作,分布式并行执行 其实这就是google在10多前的最著名的那3篇论文的核心。 分布式文件系统+分布式计算+分布式执行--------------------当所有的东西都打碎成最小的执行片段以后,你就只需要去管计划就好了,执行?他自己会在整个分布式群集系统里根据你的定义的状态机,有向图自然的执行下去,不用你去分配什么! 你要做的事情就是mapreduce,拆解原子任务(虽然你最重要,最紧急,但你的是最小任务,如果你给的是一个巨大的没拆解的任务,他会占用你所有资源,系统无法给其他任务腾出执行空间),给出数据有向图,让他自己去preduce,自己去在群集里做,不需要你上层搞什么“A你给我这个,B你去做那个的”人工干预
wanghui0380 2019-11-19
  • 打赏
  • 举报
回复
状态机,决策表都行 当然现代软件设计,有多种选择。 我个人可能会采用外置有状态服务+(哎,这个+目前太多了,不好描述了) 比如google的tensorflow,大部分人觉着那是高大上的神经网络,跟俺们没啥关系。但实际上这个恰恰就是你问的问的一个种解法,“可定义,可配置的数据有向图” 对啊,用数据有向图来实现状态机,决策表。本来就是一个途径。 人工智能里所谓的“随机森林”--------他本身就是一层一层决策树而已 ------------------------- STORM 拓扑图其实也是一类 任务加条件----------------------你说像不像hadoop的任务调度 ps:不过有时候,我觉着也没必要过于复杂,比如看看google,看看aphache,在群集服务的时候,都不约而同优先选择的是“推举制度”,而不是所谓的“中心条件选取”,对。任务其实很多情况是不用分的,他就堆在哪里,谁活着,谁有空谁做。简单自然,不用你上面去搞啥“人工智能去干预”

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧