zoukankan      html  css  js  c++  java
  • 任务管理器

    什么是任务

    任务,就是逻辑性的东西,方面对(耗时)功能进行管理。比如,我们数据导出,就可以包装成一个任务,申请个任务号,然后其他模块就可以查询这个任务的信息了。本质上,就是一个信息的共享。

    任务管理器解决问题

    1. 统一管理任务,应用程序可以通过API增加,更新,终止,查询任务信息
    2. RESTful接口,可以查询具体任务状态和详细信息(for前端)
    3. 支持分布式环境
    4. 支持任务的终止(状态终止,进度100)和优雅(状态改为终止,进度不变)终止
    5. 对于任务信息表进行超时清理,清理信息打包留存,防止任务信息表过大

    整体架构

    api架构

    存在的问题

    1. 当前任务信息存入到一个指定公共DB,效率会比较差(可更换一个分布式缓存来存放)
    2. 当前任务的进度,是由各应用去更新的,这部分可以更智能
    3. 任务进度信息比较“假”,都是镶嵌在代码里的,这部分也可以更智能
    4. 任务管理器不存在调度职能,我心目中完美的任务管理器,是新建一个任务,配置一些参数,所有调度和执行由任务管理器来执行的,比如我的开源代码kunka。

    总结

    任务管理器,是个非常有意思的模块。这次介绍的是项目中的,比较简单,我自己也实现了一个带调度功能的任务管理器kunka,任务信息是放内存的,比这个要复杂。
    kunka的介绍

  • 相关阅读:
    Nightingale 加发邮件功能
    Centos7 系统进程解析
    Nightingale 夜莺监控系统 安装
    iptables:应用防火墙规则:ptables-restore: line xxx failed [失败]
    CAD2011卸载不干净 无法重装问题
    Make Globle HS 全局热备
    Swarm工具使用
    docker-registry构建私有的镜像仓库
    MySQL Replication
    javascript 设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/lknny/p/7461787.html
Copyright © 2011-2022 走看看