本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】Agenda ——Node.js轻量级任务调度库(2)

时间:2017-03-22 02:28来源:报码现场 作者:本港台直播 点击:
每个码农可能都会存在一种工匠精神:虽然读懂 API,可以满足一般需求和正常的使用,但总会觉得有点不够。光会使用是不够的,我们需要梳理 Agenda 与项

  每个码农可能都会存在一种工匠精神:虽然读懂 API,可以满足一般需求和正常的使用,但总会觉得有点不够。光会使用是不够的,我们需要梳理 Agenda 与项目之间的关系。

wzatv:【j2开奖】Agenda ——Node.js轻量级任务调度库

  如上图中:在原始架构中,开奖,每个项目都会启用一个 Agenda 实例。但我们可以启用一个 Agenda 实例来处理所有项目中的任务调度,不仅可以节省 CPU 资源,还可以将 Agenda 服务化(将 Agenda 从业务中剥离,只去做纯粹的任务调度)。

wzatv:【j2开奖】Agenda ——Node.js轻量级任务调度库

  按照以上想法,我们将 Agenda 的任务调度操作统一交由一个进程处理(且称之为调度进程),各个使用者只需要通过 API 对调度进程中存储的任务进行操作即可,而不必关心调度进程内部是怎么实现的。这和当前非常流行的微服务有点相似。

  如何动态添加任务?我们就需要用到上一节中所遗留的方法:

  4)create

wzatv:【j2开奖】Agenda ——Node.js轻量级任务调度库

  在这里我们手动创建了任务,设置每隔10分调用一次任务,并保存到 mongodb 中。这样一来,我们就可以通过 API 来操作任务(添加、删除等)。

  风险和收益往往是并存的。享受统一调度带来的方便之时,我们也随之承受着可能的风险:如果我们的调度进程 crash 之后,会导致所有使用者的任务都不能正常有效的执行。

  我们需要将此服务做到:简单、独立、健壮,以此来满足企业级别的需求。

  总结

  以上就是笔者对 Agenda 介绍与探索。很多时候,我们应该避免重复造轮,才可以在满足需求的情况下,提升程序性能与工作效率。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容