zoukankan      html  css  js  c++  java
  • 定时任务的一些思路

    任务之间要么就是有依赖关系例如:A依赖B,B依赖C,要么就是独立的,无依赖关系,这个时候为了提高任务的执行效率,我们可以把这些任务柔和成一个定时任务来执行:

    假设:A依赖B,B依赖C,那么C并不依赖其他任务,可以首先执行,B需要等C执行完才可以执行,A需要等B、C执行完才可以执行,

    1、数据库中创建表Sync,主要用来记录任务间的依赖关系,字段:id,name,depend,status

         例如:任务A   Sync(1,'A','B','Y') ,任务B Sync(2,'B','C','Y'),任务C Sync(3,'C',,'Y')

    2: 把Sync表中的任务读取出来,创建任务执行日志 tasklog:字段:id,taskid,date,status,status有3中状态:ready、failure、success

         对于任务C这种不需要依赖其他任务的status设置为ready

         需要依赖其他任务的status设置为failure

    3、任务的执行日志status为ready的放入线程池中去执行,failure的忽略

    4、当线程池中的任务C执行完成后,判断是否有后继任务,没有就退出,有的话判断该后继任务(任务B)的前驱任务是否有执行完,执行完就设置该后继任务的状态为ready,循环执行3、4,直到所有任务执行完。

       

  • 相关阅读:
    Hadoop Gateway 部署
    java 命令--备忘
    整理下常用硬件性能参数
    python 脚本备份 mysql 数据库到 OSS
    pip 更换国内源
    记录闭包和立即执行函数
    Django 中文乱码问题&富文本显示
    mysql exceeded the 'max_questions' resource 记录
    sql server 数据字典的妙用
    Sublime Text指南
  • 原文地址:https://www.cnblogs.com/Non-Tecnology/p/6765094.html
Copyright © 2011-2022 走看看