对于任务调度我自己的想法3

假设一个工作任务分为四个级别
Project(xxxProject)
Stage(BUILD SIT UAT PROD)
Job(build check deploy )
Task(ant maven sonar)

  1. 触发动作时 记录一条 ProjectRequest(可用队列) over
  2. 收到ProjectRequest 1 2可 并作一步 不需要队列 则创建一个ProjectRecord 并依次将其对应的StageRecord JobRecord TaskRecord的信息都创建并记录到数据库中去 over
  3. 轮询Project
    3.1 首先检查执中行的ProjectRecord(根据业务规则 一般按照层级进行)
    3.1.1 检查是否有满足条件可以运行的Task 有则运行 此处需要明确的业务规则
    3.1.2 检查是否可以转换为为失败或成功状态 如可以,该ProjectRecord就不会再被执行
    3.2 检查是否有待执行的ProjectRecord 有则从将该Project的第一个待执行的Task下发
  4. 收到TaskRecord 执行Task并且将过程及结果信息记录到TaskRecord中去

问题:
各步骤之间 产生文件等如何共享(如果在同一个机器上执行比较容易 不在同一机器上则需要一些方法来解决 可以考虑存储到一个共享文件系统中,建议共享文件系统单独搭建。以便未来扩展空间

原文地址:https://www.cnblogs.com/laoniu85/p/5128872.html