CN102981904A - 一种任务调度方法及*** - Google Patents
一种任务调度方法及*** Download PDFInfo
- Publication number
- CN102981904A CN102981904A CN2011102591290A CN201110259129A CN102981904A CN 102981904 A CN102981904 A CN 102981904A CN 2011102591290 A CN2011102591290 A CN 2011102591290A CN 201110259129 A CN201110259129 A CN 201110259129A CN 102981904 A CN102981904 A CN 102981904A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- rearmounted
- time
- previous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种任务调度方法及***,以解决任务调度中***的局限性的问题。所述的方法包括:首先提取调度定时时间到期的任务,然后设定所述任务为后置任务,通过所述后置任务的任务调度依赖维表计算前置任务的计划执行时间,并且从所述任务调度依赖维表读取前置任务的任务序号,然后通过前置任务的任务序号和计划执行时间查找前置任务的任务调度运行结果表中的执行状态,若为执行成功,则将所述后置任务放置到任务队列中,等待调度执行。本发明所述的方法在各种情况下,只要确定了后置任务就能找到前置任务,确定前置任务执行成功了就可以执行后置任务,使得任务调度***更加完善。缩短调度时间,提高调度效率,减少了错误率。
Description
技术领域
本申请涉及日志技术,特别是涉及一种任务调度方法及***。
背景技术
日志是指有关计算机***发生的事务或操作的记录。在各种应用***,如银行***、门户网站***、电子商务***、公司内部的财务***等等应用***中,都会将***运行过程中所发生的一切记录为日志,并生成日志文件,然后通过对日志文件的解析,就可以详细了解***的整个运行过程。
在日志解析的过程中需要对日志来执行各项操作,所述对日志执行的操作可以看作是一项任务,例如,下载日志可以看作是一项任务,要执行下载日志这项任务就需要调度任务,然后通过***命令将任务发送到操作***,操作***再执行下载日志的操作。
在任务调度中任务可以分为后置任务和前置任务,前置任务执行完毕才能执行后置任务。通常的任务调度***的配置是当天调度当天的任务,当天执行的后置任务可以自动找到当天的前置任务,判断当天的前置任务执行完毕,则可以执行当天的后置任务。但是由于***配置的局限性,在一些特殊的情况下,若前置任务和后置任务不在同一天执行。例如,后置任务是当天的任务,所述后置任务的前置任务是前一天的任务。此时由于前置任务和后置任务不在同一天执行,使得在执行当天的后置任务时无法自动找到前一天的前置任务,此时就需要手动配置查找所述当天后置任务的前一天的前置任务,查看所述前一天的前置任务是否执行完毕。
综上所述,由于***配置的局限性导致在一些特殊情况下,需要手动配置查找后置任务的前置任务。因此会导致执行调度的时间比较长,效率较低,并且错误率较高。
发明内容
本申请提供一种任务调度方法及***,以解决任务调度中***的局限性的问题。
为了解决上述问题,本申请公开了一种任务调度方法,包括:
提取调度定时时间到期的任务,并设定所提取的任务为后置任务;
查找后置任务对应的任务调度依赖维表,并通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间;
从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间查找前置任务对应的任务调度运行结果表,其中所述任务调度运行结果表中记录了前置任务的执行状态;
查找所述任务调度运行结果表中前置任务的执行状态是否为成功,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。
优选的,所述提取调度定时时间到期的任务,并设定所提取的任务为后置任务之后,还包括:
通过所述调度定时时间计算后置任务的计划执行时间。
优选的,所述通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间,包括:
后置任务的计划执行时间减去后置任务对应的任务调度依赖维表中依赖前置任务的时间偏移,得到相应的计算值;
将所述计算值结合后置任务对应的任务调度依赖维表中的前置依赖定时时间,计算得到所述后置任务对应的前置任务的计划执行时间。
优选的,所述提取调度定时时间到期的任务,并设定所提取的任务为后置任务之前,还包括:
启动任务调度,读取参数,所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,其中x、n和m为正整数;
启动扫描线程、工作线程和监控线程,初始化任务队列;
根据时区调整基准时钟。
优选的,所述提取调度定时时间到期的任务,包括:
扫描线程根据跨天调度天数x提取x天内调度定时时间到期的任务,计算任务调度运行结果表中达到计划执行时间但尚未运行的任务清单。
优选的,所述将后置任务放置到任务队列中,等待调度执行之后,还包括:
扫描线程通过信号量通知工作线程检测任务队列并提取所述任务队列中的后置任务;
工作线程检测所述后置任务的任务锁是否与正在执行任务的任务锁冲突,若不冲突,则执行所述后置任务,否则跳过所述后置任务;
若执行所述任务,则执行所述后置任务前,置换任务运行命令中的参数,向任务调度运行结果表***调度记录,并将执行状态初始为正在运行;
运行所述后置任务的任务调度运行结果表中的任务运行命令。
优选的,所述运行所述后置任务的任务调度运行结果表中的任务运行命令之后,还包括:
等待所述任务运行命令的返回结果,如果成功,将任务调度运行结果表中的执行状态修改为执行成功,并返回;
如果运行失败,结合任务调度定义表中的失败重调度参数,修改任务运行命令,并重新提交工作线程调度;
如果失败次数超过任务调度定义表中的失败重调度次数,将任务调度运行结果表中的执行状态修改为执行失败,并返回。
优选的,所述启动工作线程,包括:
根据线程池个数n,并发启动n个工作线程。
优选的,根据间隔扫描时间m,每隔时间m运行扫描线程。
优选的,所述启动监控线程之后,还包括:
扫描任务调度运行结果表,发送失败任务、超时任务和/或定时超时任务的对应命令。
相应的,本申请还提供了一种任务调度***,包括:
提取模块,用于提取调度定时时间到期的任务,并设定所提取的任务为后置任务;
第二计算模块,用于查找后置任务对应的任务调度依赖维表,并通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间;
查找模块,用于从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间查找前置任务对应的任务调度运行结果表,其中所述任务调度运行结果表中记录了每个任务的执行状态;
判断模块,用于查找所述任务调度运行结果表中前置任务的执行状态是否为成功,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。
优选的,所述的***还包括:
第一计算模块,用于通过所述调度定时时间计算后置任务的计划执行时间。
优选的,所述的第二计算模块,包括:
相减子模块,用于后置任务的计划执行时间减去后置任务对应的任务调度依赖维表中的依赖前置任务的时间偏移,得到相应的计算值;
计算子模块,用于将所述计算值结合后置任务对应的任务调度依赖维表中前置依赖定时时间,计算得到所述后置任务对应的前置任务的计划执行时间。
优选的,所述的***还包括:
启动模块,用于启动任务调度,读取参数,所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,其中x、n和m为正整数;
初始模块,用于启动扫描线程、工作线程和监控线程,初始化任务队列;
时钟调整模块,用于根据时区调整基准时钟。
优选的,所述提取模块,包括:
任务清单子模块,用于扫描线程根据跨天调度天数x提取x天内调度定时时间到期的任务,计算任务调度运行结果表中达到计划执行时间但尚未运行的任务清单。
优选的,所述的***还包括:
提取任务模块,用于扫描线程通过信号量通知工作线程检测任务队列并提取所述任务队列中的任务;
测试任务锁模块,用于工作线程检测所述后置任务的任务锁是否与正在执行任务的任务锁冲突,若不冲突,则执行所述后置任务,否则跳过所述后置任务;
置换参数模块,用于若执行后置任务,则执行所述后置任务前,置换任务运行命令中的参数,向任务调度运行结果表***调度记录,并将执行状态初始为正在运行;
任务运行模块,用于运行所述后置任务的任务调度运行结果表中的任务运行命令;
任务重调度模块,用于等待所述任务运行命令的返回结果,如果成功,则将任务调度运行结果表中的执行状态修改为执行成功,并返回;如果运行失败,结合任务调度定义表中的失败重调度参数,修改任务运行命令,并重新提交工作线程调度;如果失败次数超过任务调度定义表中的失败重调度次数,将任务调度运行结果表中的执行状态修改为执行失败,并返回。
优选的,所述启动模块根据线程池个数n,并发启动n个工作线程;
所述扫描模块根据间隔扫描时间m,每隔时间m运行扫描线程。
优选的,所述的***还包括:
监控模块,用于扫描任务调度运行结果表,发送失败任务、超时任务和/或定时超时任务的对应命令。
与现有技术相比,本申请包括以下优点:
本申请提供一种任务调度方法及***,首先提取调度定时时间到期的任务,然后设定所述任务为后置任务,通过所述后置任务的任务调度依赖维表计算前置任务的计划执行时间,并且从所述任务调度依赖维表读取前置任务的任务序号,然后通过前置任务的任务序号和计划执行时间查找前置任务的任务调度运行结果表中的执行状态,若为执行成功,则后置任务满足调度条件,将所述后置任务放置到任务队列中,等待调度执行。通过在任务调度依赖维表中预先配置好的任务之间的依赖关系,判定前置任务是否执行成功。本申请所述的方法在各种情况下,只要确定了后置任务就能找到前置任务,确定前置任务执行成功了就可以执行后置任务,使得任务调度***更加完善。缩短调度时间,提高调度效率,减少了错误率。
其次,本申请通过失败重调度参数,可以实现失败任务自动重新调度,避免漏触发问题,同时减少人工参与,只有当失败次数超过指定次数时才认为调度失败,使得任务调度速度更快。而且本申请支持历史调度重处理,使得某些特殊场合时可以重新处理某一天的日志,因此调度***更灵活。
再次,本申请包含监控线程,提供自动报警功能,在检测到失败任务和超时任务时会通知任务负责人,使得失败任务、超时任务和定时超时任务可以得到快速的处理,使任务调度***运行更快速,更完善。
再次,本申请支持对任务做参数替换的功能,被调度任务经常使用的时间参数都是通过调度***的计划执行时间传递。并且,本申请根据时区调整基准时钟,可以实现在任务的时区转换,例如在中国的主机上可以按照美国时间调度任务。
再次,本申请采用多线程方式调度,线程池的个数和扫描周期可以配置,多个线程可以并发执行任务调度,因此调度***更灵活,并且互斥的任务不能并发执行,使得调度***更精确。
附图说明
图1是本申请实施例所述一种任务调度方法流程图;
图2是本申请优选实施例所述一种任务调度方法流程图;
图3是本申请优选实施例所述一种任务调度方法中工作线程运行任务流程图;
图4是本申请优选实施例所述一种任务调度方法中工作线程任务重调度流程图;
图5是本申请实施例所述一种任务调度***结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
为了解决跨天调度的问题,本申请提供了一种任务调度方法及装置,可以解决任务调度中***的局限性的问题。
日志是指有关计算机***发生的事务或操作的记录。通过对日志文件的解析,可以详细了解***的整个运行过程。在日志解析的过程中需要对日志来执行各项操作,所述对日志执行的操作可以看作是一项任务,例如,下载日志可以看作是一项任务,要执行下载日志这项任务就需要调度任务,然后通过***命令将任务发送到操作***,操作***再执行下载日志的操作。
通常,一个完整的日志解析方法可以分为以下几个步骤:
1)将数据库的维表配置导出到文件,分布式计算一般不能直接读取数据库维表,否则需要在每一台计算节点安装数据库客户端;
2)通过http/ftp/scp/cp等方式下载待分析的原始日志;
3)传统单机或者分布式计算方式进行日志分析,输出待入库的平面文件;
4)将待入库的平面文件入库到ORACLE或者GREENPLUM;
5)重建数据库索引rebuild_index,***ETL通知接口标记。
在这个日志解析的过程中,如下载日志、解析日志等任务中都需要对任务进行调度,下面结合实施例具体论述任务调度方法。
在本申请所述的方法中,可以应用于Linux***中,任务调度与任务之间通过***命令system执行,被调度的任务不能常驻内存,并且约定:返回值为0表示成功,否则表示失败。并且在本申请所述的方法中每个任务可以配置3张表:
JOBS_DIMT0 | 任务调度定义维表 |
JOBS_RELATION_DIMT0 | 任务调度依赖维表 |
JOBS_FATDT0 | 任务调度运行结果表 |
表1
前面两张表主要定义任务,及任务之间的依赖关系;后面一张表是任务的运行结果,下面进行具体阐述。
任务调度定义维表用于对任务进行定义,具体配置如下:
表2
其中,调度方案SCHEMA_ID用于唯一标识一个调度体系,可以是站点级别,比如中文站调度,国际站调度;也可以是业务级别,比如中文站clickstat业务、中文站CTR曝光业务等。任务的依赖与互斥只能在同一个调度体系内有效。所述的中文站主要是面向中国的中文网站,可以用于处理国内的贸易等业务,通常采用北京时间为基准时间;国际站主要是面向国际的特别是外国的英文网站,可以用于处理国际之间的贸易的业务,可以采用美国东部时间为基准时间。
任务序号JOB_ID用于标识可运行的任务。
JOB_NAME仅仅是说明性字段,用于描述任务的功能。
任务命令行JOB_COMMAND为任务运行命令,支持一些参数的置换。
在Linux***中运行的命令,一般要有命令参数。比如下载,需要知道下载哪一天,哪个小时的任务;可能从中国服务器下载任务,也有可能从美国服务器下载任务,中国服务器的时间,和美国服务器的时间,因为时区的关系是不一样的,有可能不是同一天的任务。因此在调度任务时,只需要对参数进行置换就可以运行所有的任务。
参数置换配置如下:
表3
同样也可以进行环境变量的替换,环境变量的替换是方便迁移,比如$HOME,指的是用户的根目录,同样的目录不需要修改,对命令来说就是$HOME目录。通过参数的配置可以屏蔽具体的目录,因此对于不同的目录,例如A用户的根目录是/home/app,而B用户的根目录是/home/admin,执行调度时只需要修改环境变量的参数即可。如表3,被调度任务经常使用的时间参数都是通过调度***的计划执行时间来传递的,即参数置换是取计划执行时间与时间偏移的计算值。
JOB_LOCK字段为一个数据库层级的任务锁,该配置值相等的任务互斥,不能并发运行。在任务调度中,运行任务前会先检测是否有JOB_LOCK等值的任务正在运行,如果存在则所述任务暂时不能运行,需要等待与其JOB_LOCK等值的任务结束后才能运行。
TIME_CRONTAB字段是调度定时时间,用于设定任务调度的时间,它的配置与linux***下的crontab工具的时间部分是完全一致的,通过调度定时时间可以确定计划执行的时间。调度定时时间通常是没有具体日期的一个时间点,因此调度定时时间可以定义为每天的某个时刻调度。
例如,A任务的调度定时时间为:4000***,即每天的0点40分,则在2011-7-27这天的计划执行时间就是2011-7-2700:40。
当然,所述因此调度定时时间可以定义每周或每月的某个时间调度,也可以定义为某天的某个时间调度,还可以定义为每隔一段时间调度,本申请对此不做限定。
根据调度定时时间的定义,可以看出上述任务序号标识的任务不是唯一的。例如,任务序号为001的任务的调度定时时间时每天的0点40分,昨天的0点40分后有一个任务序号为001的任务可以执行调度,今天的0点40分后也有一个任务序号为001的任务可以执行调度。
考虑***的忙闲程度与调度任务的依赖关系,实际执行时间极有可能晚于计划执行时间。具体配置如下:
表4
JOB_RETRY字段为失败重调度次数,用于配置任务调度失败时可重新调度的最大次数,超过所述的次数则任务失败,并告警给OPERATOR字段配置的责任人员。
重处理时分具体的任务,一些任务可以直接重新调度,比如下载;一些任务必须做环境清理,比如入库。因此JOB_REDO_ARGS失败重调度参数,用于标识该任务是否是失败重处理的任务。
TIME_OFFSET字段为时间偏移,时间偏移是在定义任务时就设定好了的,例如,在解析日志时需要调度下载日志这项任务,因此在按小时的日志解析中,本小时处理上一小时的日志,日志是在22点生成的,下载日志的时间是23点,那么偏移时间就设定为-1。
本申请所述的方法根据任务之间的依赖关系进行任务的调度,任务间的依赖关系要参照任务调度依赖维表,具体配置如下:
表5
其中,SCHEMA_ID和JOB_ID与任务调度定义维表一致;PRE_JOB_ID标识前置任务,是前置任务的任务序号;JOB_ID是任务序号,它标识的任务即为后置任务,前置任务和后置任务具有依赖关系。
TIME_CRONTAB字段叫做前置依赖定时时间,同上述的调度定时时间类似,前置依赖定时时间通常也是没有具体日期的一个时间点,因此前置依赖定时时间可以定义为每天的某个时间调度。
当然,所述前置依赖定时时间也可以定义为每周或每月的某个时间调度,也可以定义为某天的某个时间调度,还可以定义为每隔一段时间调度,本申请对此不做限定。
TIME_OFFSET字段叫做依赖前置任务的时间偏移,和前置任务的时间偏移是相同的。通常,在任务调度中各个任务的时间偏移可以是相同的,例如在在按小时的日志解析中,本小时处理上一小时的日志。在这个日志解析需要进行任务的调度,通常偏移时间设定为-1。当然各个任务的时间偏移也可以不相同,本申请对此不做限定。
后文中会举例论述判断后置任务是否满足调度条件的过程。
查找前置任务的任务调度结果运行表时还会根据SCHEMA_ID,调度方案SCHEMA_ID用于唯一标识一个调度体系,任务的依赖与互斥只能在同一个调度体系内有效。
两个任务满足依赖关系即使是跨天的任务也可以进行调度。
一个任务是否被调度以及被调度后的执行状态,都可以通过任务调度运行结果表了解,具体配置如表6。
JOBS_FATDT0表用于保存任务调度的运行结果,判断任务的执行状态。SCHEMA_ID和JOB_ID和任务调度运行定义维表相同;TASK_ID是作业标识,可以通过甲骨文公司(ORACLE)的数据库软件中的sequence来实现,所述Sequence是数据库***按照一定规则自动增加的数字序列;JOB_COMMAND为JOBS_DIMT0维表相应字段做参数置换之后的值,可以直接在linux***下直接运行。REAL_START_TIME与REAL_STOP_TIME字段结合来衡量任务调度的耗时,也作为任务超时的标准;执行状态STATUS字段用于标识任务的调度状态,其中0代表正在执行;1代表执行成功;2代表执行失败;INSERT_DATE是***时间,是***执行任务记录的时间,可以与REAL_START_TIME相同。
当STATUS=0即任务正在执行时,并且当前时间减去实际执行开始时间REAL_START_TIME超过任务调度运行定义维表JOBS_DIMT0配置的任务超时时间JOB_RETRY,则认为任务超时;当STATUS=2即任务执行失败时,如果其记录条数超过1条,则失败告警,对于这两种情况将执行的JOB_COMMAND命令可以通过邮件、短信等方式通知任务的责任人员。
表6
参照图1,给出了本申请实施例所述一种任务调度方法流程图。
步骤101,提取调度定时时间到期的任务,并设定所提取的任务为后置任务;
首先提取调度定时时间到期的任务,然后设定所提取的任务为后置任务。
其中,所述调度定时时间是用于设定任务调度的时间,它的配置与linux***下的crontab工具的时间部分是完全一致的。调度定时时间可以定义为每天或每周或每月的某个时间调度,也可以定义为某天的某个时间调度,还可以定义为每隔一段时间调度,本申请对此不做限定。
所述调度定时时间到期的任务是指达到或超过调度定时时间的任务。例如B任务的调度定时时间是每天的19:30,扫描时的时间是2011-7-2719:30,与调度定时时间相等,或者,扫描时的时间是2011-7-2720:30,超过调度定时时间,均可以认为A任务的调度定时时间到期。
步骤102,查找后置任务对应的任务调度依赖维表,并通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间;
在上一步骤中提取的调度定时时间到期的任务并设定所提取的任务为后置任务后,对于后置任务有对应的前置任务,前置任务和后置任务具有依赖关系,根据所述依赖关系配置了相应的任务调度依赖维表。查找后置任务对应的任务调度依赖维表,通过所述后置任务对应的任务调度依赖维表可以计算出所述后置任务对应的前置任务的计划执行时间。具体计算前置任务的计划执行时间的方法会在后文中详细介绍。
步骤103,从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间查找前置任务的任务调度运行结果表,其中所述任务调度运行结果表中记录了每个任务的执行状态;
在上述步骤中得到了所述后置任务对应的前置任务的计划执行时间,然后从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间,可以查找前置任务对应的任务调度运行结果表,当表中的任务序号和计划执行时间与所述前置任务的任务序号和计划执行时间吻合时,即当表中的任务序号和计划执行时间与所述前置任务的任务序号和计划执行时间分别相同时,就是前置任务的任务调度运行结果表。所述任务调度运行结果表中记录了每个任务的执行状态。
其中,所述任务序号不是唯一的,通常会将调度定时时间设置为每天的某一时刻执行,例如,调度定时时间是每天的0点40分,则同一任务序号下可能是2011-7-26的0点40分的任务,也可能是2011-7-27的0点40分的任务。但是每个任务的计划执行时间是唯一的,2011-7-26的0点40分的任务的计划执行时间的2011-7-2600:40,2011-7-27的0点40分的任务的计划执行时间是2011-7-2700:40。但是同一计划执行时间的任务也有可能不是同一任务序号,因此需要根据前置任务的任务标号和计划执行时间共同来查找所述前置任务的任务调度运行结果表。
步骤104,查找所述任务调度运行结果表中前置任务的执行状态是否为成功,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。
查找前置任务的任务调度运行结果表,查看所述任务调度运行结果表中的执行状态。若执行状态为执行成功,则可以认为所述后置任务满足调度条件,将满足调度条件的后置任务放置到任务队列中,等待调度执行。
若执行状态不为执行成功,则认为所述后置任务不满足调度条件,不能将所述后置任务放置到任务队列中,因此暂时不能执行调度。
任务满足调度条件即使不是当天的任务也可以进行调度。然后将所述满足调度条件的任务放置到任务队列中,任务队列中的任务按天和任务优先级进行排序,首先按天排序,天数越早的任务优先级越高,即昨天的任务优先级高于今天的任务;同一天的任务按任务调度定义维表中的优先级排序。然后再进行下一步的操作。
综上所述,本申请提供一种任务调度方法及***,首先提取调度定时时间到期的任务,然后设定所述任务为后置任务,通过所述后置任务的任务调度依赖维表计算前置任务的计划执行时间,然后从所述任务调度依赖维表中读取前置任务的任务序号,然后通过前置任务的任务序号和计划执行时间查找前置任务的任务调度运行结果表中的执行状态,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。本申请所述的方法在各种情况下,只要确定了后置任务就能找到前置任务,确定前置任务执行成功了就可以执行后置任务,使得任务调度***更加完善。
进一步,提取调度定时时间到期的任务,并设定所提取的任务为后置任务之后,还包括:
通过所述调度定时时间计算后置任务的计划执行时间。
通过后置任务的调度定时时间可以计算出后置任务的计划执行时间。调度定时时间通常是没有具体日期的一个时间点,因此将调度定时时间和执行调度这天的具体日期相结合就可以计算出任务的计划执行时间。
例如,A任务的调度定时时间为:4000***,即每天的0点40分,则在2011-7-27这天的计划执行时间就是2011-7-2700:40。
进一步,所述通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间,包括:
首先,后置任务的计划执行时间减去后置任务对应的任务调度依赖维表中依赖前置任务的时间偏移,得到相应的计算值;
在上述步骤中计算出了后置任务的计划执行时间,在后置任务对应的任务调度依赖维表中设置有表示偏移时间的字段,叫做依赖前置任务的偏移时间。用后置任务的计划执行时间减去所述的依赖前置任务的偏移时间,计算得到相应的差值,然后进行下一步的运算。
例如,上述A任务的计划执行时间是2011-7-2700:40,A任务的任务调度依赖维表中依赖前置任务的偏移时间为-1,代表前一个小时。因此将A任务的计划执行时间减去所述依赖前置任务的偏移时间得到的差值为2011-7-2623:40。
其次,将所述计算值结合后置任务对应的任务调度依赖维表中前置依赖定时时间,计算得到所述后置任务对应的前置任务的计划执行时间。
在后置任务对应的任务调度依赖维表中配置有一个字段叫前置依赖定时时间,同上述的调度定时时间类似,前置依赖定时时间通常也是没有具体日期的一个时间点。将上述步骤中的计算出的差值中的具体日期和所述前置依赖定时时间相结合计算出所述后置任务对应的前置任务的计划执行时间。
例如,上述计算得到的差值为2011-7-2623:40,A任务的任务调度依赖维表中前置依赖定时时间为3023***,每天的23点30分,设A任务的前置任务为B任务,所以B任务的计划执行时间为2011-7-2623:30。
在上述的例子中,假设B任务的任务调度定义维表的调度定时时间是:3023***,A任务的任务调度依赖维表中的前置依赖定时时间也是:3023***,B任务的调度定时时间和所述前置依赖定时时间是相等的。
另外一种情况,A任务和上述假设相同,A任务的调度定时时间为:4000***(每天0点40分),此时假设B任务是每个小时都会运行的,则B任务的任务调度定义维表中调度定时时间为:30****(每个小时的30分,例如1点30分,2点30分等等)。
A任务的任务调度依赖维表中的前置依赖定时时间还是:3023***,计算方法与上例相同。
但此时,B任务的任务调度定义维表的调度定时时间是:30****,与A任务的任务调度依赖维表中的前置依赖定时时间不相等。
当然,所述的任务间具有依赖关系也可以是多个任务间的依赖,例如A依赖于B,A还依赖于C,此时在A的任务调度依赖维表中,就有两个与A有依赖关系的前置任务的配置,此时B和C的执行状态均要运行成功,A才满足调度条件可以执行。
参照图2,给出了本申请优选实施例所述一种任务调度方法流程图。
步骤201,启动任务调度,读取参数,所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,其中n、x和m为正整数;
首先启动任务调度***,读取任务调度***的配置文件中的参数,其中所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,n、x和m为正整数。
所述的参数中还可以包括调度方案,通过调度方案确定要处理的任务数据,在启动数据库后,根据调度方案提取相应的数据。
步骤202,启动扫描线程、工作线程和监控线程,初始化任务队列;
首先要启动扫描线程、工作线程和监控线程,对任务队列进行初始化,其中扫描线程与工作线程通过任务队列交互可运行的任务清单,即扫描线程将任务清单中具有依赖关系且满足调度条件的任务放到任务队列,工作线程将任务从任务队列中取出进行调度,若所述任务执行成功,则所述任务不会再放到任务清单中,在这个过程中不断的更新任务清单,具体过程会在后面的内容中进行叙述。
步骤203,根据时区调整基准时钟。
在本申请所述的方法中,任务调度的时间均是基于基准时间,而不是主机时间。
通常在一些网站中,例如,上述的中文站中的日志按中国北京时间解析,而国际站中的日志按美国东部时间解析,并且所述的国际站还存在美国夏令时的问题。日志解析中需要任务调度,在本申请所述的方法中,可以在统一调度***中处理所述中文站和国际站中的任务。因此需要根据时区调整基准时钟,只需要修改调度***的时区,而不需要一一修改任务的时区,就可以解决各个时区间的调度问题,在中国的主机上的任务调度***可以按照美国时间调度任务,使任务调度更加灵活。
优选的,所述提取调度定时时间到期的任务,包括:
根据跨天调度天数x提取x天内调度定时时间到期的任务,计算任务调度运行结果表中达到计划执行时间但尚未运行的任务清单。
首先可以根据跨天调度天数x取x天内调度定时时间到期的任务,因此x天以内的调度定时时间到期任务都可以进行调度。然后查找任务调度运行结果表中达到了计划执行时间,但还没有开始运行的任务。
所述达到计划执行时间的任务同上述调度定时时间到期的任务类似,是指达到或超过计划执行时间的任务,例如,跨天天数是2天,A任务的计划执行时间是2011-7-2719:30,B任务的计划执行时间是2011-7-2819:30,执行调度的时间是2011-7-2819:30,A任务和B任务都没有运行,则B任务的计划执行时间刚好达到了,可以放置到任务队列中,A任务的计划执行时间超过了,也认为是到达了计划执行时间,因此也可以放置到任务队列中。
一个任务真正开始执行了,才会生成任务调度运行结果表,因此所述没有开始运行的任务是指所述任务没有任务调度运行结果表,即任务调度运行结果表中没有任何关于所述任务的记录,将所述任务制成一份任务清单。其中任务调度运行结果表记录了任务是否被调度,以及调度后的执行状态等。
在现有技术中通常是当天自动调度当天的任务,但是有一些特殊情况,例如,数据库故障、主机停机维护等一些外在的环境因素暂停调度,如果排除故障、主机维护是在当天完成的,则当天的任务可以自动进行调度。但是如果在故障排除、主机维护是几天之后才完成的,那么这几天之内的任务就都没有执行调度。这几天之内的任务中有一些不是当天的任务,现有技术中无法自动执行调度,要调度这些任务就要手动配置将任务加入任务清单中,然后配置他们的前置任务,查看前置任务是否执行成功。
在本申请所述的方法中,可以自动提取x内调度定时时间到期的任务,将达到计划执行时间但尚未运行的任务放置到任务清单中。将任务清单中的任务设置为后置任务,然后查看所述后置任务对应的前置任务的执行状态是否为执行成功,若为执行成功则将所述后置任务放置到任务队列中,等待调度的执行。
本申请通过参数的配置,可以调度x天的任务,实现历史调度重处理,使得某些特殊场合时可以重新处理某一天的日志,因此调度***更灵活。
参照图3,给出了本申请优选实施例所述一种任务调度方法中工作线程运行任务流程图。
优选的,所述将后置任务放置到任务队列中,等待调度执行之后,还包括:
步骤301,扫描线程通过信号量通知工作线程检测任务队列并提取所述任务队列中的后置任务;
后置任务放到任务队列中以后,扫描线程会通过信号量通知工作线程检测任务队列,在任务队列中检测到后置任务后,工作线程提取任务队列中的后置任务,因为本申请所述的是多线程的任务调度,所以扫描线程会通过信号量通知所有的工作线程,此时空闲的工作线程就会去检测任务队列。
其中,所述信号量有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。
步骤302,工作线程检测所述后置任务的任务锁是否与正在执行任务的任务锁冲突,若不冲突,则执行所述后置任务,否则跳过所述后置任务;
取出所述后置任务后,工作线程会查看所述后置任务的任务锁以及正在执行任务的任务锁,检测所述后置任务的任务锁是否与正在执行的某个任务的任务锁相冲突,所述相冲突可以是任务锁的值相等,所述值相等的两个任务是互斥的,不能并发执行调度。
在任务调度结果表中有一个字段是任务锁,每一个任务锁都配置了相应的值,在任务调度中,从任务队列中取出所述后置任务后,会先检测所述后置任务的任务锁,查看是否有与其任务锁等值的任务正在运行,即查看与其任务锁等值的任务的运行调度结果表中的执行状态STATUS=0,如果存在则跳过所述后置任务,即正在执行任务的任务锁都不与所述后置任务的任务锁等值时,所述后置任务才能运行。
例如,A任务依赖于B任务,B任务已经执行成功了,则A任务满足调度条件,将A任务放置到任务队列中,工作线程提取任务队列中的A任务,但是检测发现A任务的任务锁与C任务的任务锁值相同,C任务正在运行,则A任务暂时不能运行,要等到C任务运行结束,A任务才能运行。
步骤303,若执行所述后置任务,则执行所述后置任务前,置换任务运行命令中的参数,向任务调度运行结果表***调度记录,并将执行状态初始为正在运行;
若经过上述步骤判断所述后置任务可以执行,则置换任务运行命令中的参数,然后向所述后置任务的任务调度运行结果表中***任务运行记录,即一个任务在没有运行之前,任务调度运行结果表是空的,置换参数后***相关字段的数据,例如SCHEMA_ID、JOB_ID、参数置换后的JOB_COMMAND、JOB_LOCK、INSERT_DATE和PLAN_START_TIME等,并将执行状态STATUS初始为1。下面举例说明任务运行命令JOB_COMMAND的参数置换:
原始的任务运行命令:JOB_COMMAND字段配置
$HOME/hadoop/bin/hadoop jar
$HOME/jobs/MultiCtr/HalusStreaming/halus.jar-input
CookieLog/MultiCtr/$YYYY$$MM$$DD$/$HH$-analysisTime 02:00:00
-analysisPeriod 3600-cmd″logUniparse-i logUniparse.cfg-j $SCHEME_ID$-d$YYYY$$MM$$DD$″-env″LOGGER=$HOME/log LD_LIBRARY_PATH=.″
-reduceNum 8-shipFiles
$HOME/jobs/MultiCtr/HalusStreaming/logUniparse/logUniparse
$HOME/jobs/MultiCtr/HalusStreaming/logUniparse/logUniparse.cfg
$HOME/jobs/MultiCtr/HalusStreaming/logUniparse/libctrdump.so
$HOME/jobs/MultiCtr/HalusStreaming/logUniparse/libctrdec.so-output
SqlldrDat/MultiCtr/$YYYY$$MM$$DD$/$HH$-config
$HOME/jobs/MultiCtr/HalusStreaming/halus.xml
假设任务调度定时时间:102***,那么前一天的调度定时时间为:2011-07-2702:10:00
参数替换之后为:
/home/admin/hadoop/bin/hadoop jar
/home/admin/jobs/MultiCtr/HalusStreaming/halus.jar-input
CookieLog/MultiCtr/20110727/01-logger
/home/admin/jobs/MultiCtr/logs/20110727/halus-analysisTime 02:00:00
-analysisPeriod 3600-cmd″logUniparse-i logUniparse.cfg-j 26-d 20110727″
-env″LOGGER=/home/admin/log LD_LIBRARY_PATH=.″-reduceNum 8
-shipFiles/home/admin/jobs/MultiCtr/HalusStreaming/logUniparse/logUniparse
/home/admin/jobs/MultiCtr/HalusStreaming/logUniparse/logUniparse.cfg
/home/admin/jobs/MultiCtr/HalusStreaming/logUniparse/libctrdump.so
/home/admin/jobs/MultiCtr/HalusStreaming/logUniparse/libctrdec.so-output
SqlldrDat/MultiCtr/20110727/01-config
/home/admin/jobs/MultiCtr/HalusStreaming/halus.xml
在Linux***中运行的命令,一般要有命令参数。比如下载,需要知道要下载哪一天,哪个小时的任务;可能从中国服务器下载任务,也有可能从美国服务器下载任务,中国服务器的时间,和美国服务器的时间,因为时区的关系是不一样的,有可能不是同一天的任务。因此在调度任务时,只需要对参数进行置换就可以运行所有的任务。
同样也可以进行环境变量的替换,环境变量的替换是方便迁移,比如上例中的$HOME,指的是用户的根目录,同样的目录不需要修改,对命令来说就是$HOME目录。通过参数的配置可以屏蔽具体的目录,因此对于不同的目录,例如A用户的根目录是/home/app,而B用户的根目录是/home/admin,执行调度时只需要修改环境变量的参数即可,调度运行结果表的配置不变。
本申请所述的方法,支持对任务做参数替换的功能,如上所述的被调度任务经常使用的时间参数都是通过调度***的计划执行时间来传递的。
步骤304,运行所述后置任务的任务调度运行结果表中的任务运行命令;
通过***命令运行所述后置任务的任务调度运行结果表中的任务运行命令,所述任务运行命令是经过参数置换后的。
参照图4,给出了本申请优选实施例所述一种任务调度方法中工作线程任务重调度流程图。
优选的,所述运行所述后置任务的任务运行调度结果表中的任务运行命令之后,还包括:
步骤401,等待所述任务运行命令的返回结果,如果成功,将任务调度运行结果表中的执行状态修改为执行成功,并返回;
等待所述任务运行命令的返回结果,如果返回结果为成功,将任务调度运行结果表中的执行状态修改为执行成功,即STATUS=1,并返回步骤401重新执行工作线程。
步骤402,如果运行失败,结合任务调度定义表中的失败重调度参数,修改任务运行命令,并重新提交工作线程调度;
如果所述任务运行命令的返回结果是失败,可以休眠若干秒钟,结合任务调度定义表中的失败重调度参数,修改任务运行命令,清理数据库中已存的数据,然后提交工作线程进行重新调度。
当然,有些情况例如下载任务,则可以直接进行重新调度。
步骤403,如果失败次数超过任务调度定义表中的失败重调度次数,将任务调度运行结果表中的执行状态修改为执行失败,并返回。
在任务执行失败后会对任务进行重新调度,但为防止***陷入死循环等问题,重新调度不能无限次的执行,因此如果失败次数超过任务调度定义表中的失败重调度次数,可以将任务调度运行结果表中的执行状态修改为执行失败,即STATUS=2,并返回步骤301重新执行工作线程。
通过上述步骤,本申请所述的方法通过失败重调度参数,可以实现失败任务自动重新调度,避免漏触发问题,同时减少人工参与,只有当失败次数超过指定次数时才认为调度失败,使得任务调度速度更快。
优选的,所述启动工作线程,包括:
根据线程池个数n,并发启动n个工作线程。
优选的,在本申请所述的方法中,根据间隔扫描时间m,每隔时间m运行扫描线程。
本申请可以应用于多线程的***中,任务调度中根据线程池个数n可以并发启动n个工作线程,实现多线程并发执行,采用多线程方式调度;并且可以根据间隔扫描时间m,每隔时间m运行扫描线程,使得调度配置更加灵活。
优选的,所述启动监控线程之后,还包括:
扫描任务调度运行结果表,发送失败任务、超时任务和/或定时超时任务的对应命令。
扫描任务调度运行结果表,将执行失败的任务,即STATUS=2的任务的对应命令和责任人员报送监控中心,监控中心可以通过邮件、短信、电话等方式通知责任人员。
扫描任务调度运行结果表,将超时的任务,也就是正在执行即STATUS=0,并且当前时间与实际执行开始时间差超过,任务调度定义维表中的任务超时时间的值的任务,将所述任务的对应命令和责任人员报送监控中心,监控中心可以通过邮件、短信、电话等方式通知责任人员。
扫描任务调度运行结果表,将定时超时任务即计划执行时间与基准时间的差,超过任务调度定义维表中的任务超时时间的值的任务,将所述任务的对应命令和责任人员报送监控中心,监控中心可以通过邮件、短信、电话等方式通知责任人员。
间隔一段时间,例如15分钟,重复执行步骤402。
通过监控线程,可以实现自动报警功能,在检测到失败任务和超时任务时会通知任务负责人,使得失败任务和超时任务可以得到快速的处理,使任务调度***运行更快速,更完善。
通常日志解析程序语言有python/java/c++等,本申请所述的实施例涉及ORACLE数据库,采用python作为开发语言,但本申请对此不做限定。
在现有的方案中,crontab通过执行周期性指令进行任务调度,此种方法维护成本高,没有任务依赖,如果主机重启,还可能存在漏触发的情况;另一种方案,Quartz是开源的作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,为java应用程序提供调度的基本功能,但是Quartz对于任务异常的管理以及任务的依赖关系需要由开发人员的手动配置来实现。
通过上述内容,以及与现有技术的对比可知,本申请包含以下优点:
本申请提供一种任务调度方法及***,首先提取调度定时时间到期的任务,然后设定所述任务为后置任务,通过所述后置任务的任务调度依赖维表计算前置任务的计划执行时间,并且查找所述任务调度依赖维表包含前置任务的任务序号,然后通过前置任务的任务序号和计划执行时间查找前置任务的任务调度运行结果表中的执行状态,若为执行成功,则后置任务满足调度条件。通过在任务调度依赖维表中预先好配置好的任务之间的依赖关系,判定前置任务是否执行成功。本申请所述的方法在各种情况下,只要确定了后置任务就能找到前置任务,确定前置任务执行成功了就可以执行后置任务,使得任务调度***更加完善。缩短调度时间,提高调度效率,减少了错误率。
其次,本申请通过失败重调度参数,可以实现失败任务自动重新调度,避免漏触发问题,同时减少人工参与,只有当失败次数超过指定次数时才认为调度失败,使得任务调度速度更快。而且本申请支持历史调度重处理,使得某些特殊场合时可以重新处理某一天的日志,因此调度***更灵活。
再次,本申请包含监控线程,提供自动报警功能,在检测到失败任务和超时任务时会通知任务负责人,使得失败任务、超时任务和定时超时任务可以得到快速的处理,使任务调度***运行更快速,更完善。
再次,本申请支持对任务做参数替换的功能,被调度任务经常使用的时间参数都是通过调度***的计划执行时间传递。并且,本申请根据时区调整基准时钟,可以实现在任务的时区转换,例如在中国的主机上可以按照美国时间调度任务。
再次,本申请采用多线程方式调度,线程池的个数和扫描周期可以配置,多个线程可以并发执行任务调度,因此调度***更灵活,并且互斥的任务不能并发执行,使得调度***更精确。
上述实施例中以日志解析过程中的任务调度为例进行论述,当然本申请所述的任务调度方法在Linux***的任务调度中均可采用,本申请对此不做限定。
基于上述方法实施例的说明,本申请还提供了相应的任务调度***实施例,来实现上述方法实施例所述的内容。
参照图5,给出了本申请实施例所述一种任务调度***结构图。
所述任务调度***可以包括提取模块103,第二计算模块105、查找模块106和判断模块107,其中,
提取模块103,用于提取调度定时时间到期的任务,并设定所提取的任务为后置任务;
第二计算模块105,用于查找后置任务对应的任务调度依赖维表,并通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间;
查找模块106,用于从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间查找前置任务对应的任务调度运行结果表,其中所述任务调度运行结果表中记录了每个任务的执行状态;
判断模块107,用于查找所述任务调度运行结果表中前置任务的执行状态是否为成功,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。
进一步,所述的***还包括:
第一计算模块104,用于通过所述调度定时时间计算后置任务的计划执行时间。
进一步,所述的第二计算模块105,包括:
相减子模块1051,用于后置任务的计划执行时间减去后置任务对应的任务调度依赖维表中依赖前置任务的时间偏移,得到相应的计算值;
计算子模块1052,用于将所述计算值结合后置任务对应的任务调度依赖维表中前置依赖定时时间,计算得到所述后置任务对应的前置任务的计划执行时间。
优选的,所述的***还包括:
启动模块100,用于启动任务调度,读取参数,所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,其中x、n和m为正整数;
初始模块101,用于启动扫描线程、工作线程和监控线程,初始化任务队列;
时钟调整模块102,用于根据时区调整基准时钟。
优选的,所述提取模块103,包括:
任务清单子模块1031,用于扫描线程根据跨天调度天数x提取x天内调度定时时间到期的任务,计算任务调度运行结果表中达到计划执行时间但尚未运行的任务清单。
优选的,所述的***还包括:
提取任务模块108,用于扫描线程通过信号量通知工作线程检测任务队列并提取所述任务队列中的任务;
测试任务锁模块109,用于工作线程检测所述后置任务的任务锁是否与正在执行任务的任务锁冲突,若不冲突,则执行所述后置任务,否则跳过所述后置任务;
置换参数模块110,用于执行所述后置任务时,置换任务运行命令中的参数,向任务调度运行结果表***调度记录,并将执行状态初始为正在运行;
任务运行模块111,用于运行所述后置任务的任务调度运行结果表中的任务运行命令;
任务重调度模块112,用于等待所述任务运行命令的返回结果,如果成功,则将任务调度运行结果表中的执行状态修改为执行成功,并返回;如果运行失败,结合任务调度定义表中的失败重调度参数,修改任务运行命令,并重新提交工作线程调度;如果失败次数超过任务调度定义表中的失败重调度次数,将任务调度运行结果表中的执行状态修改为执行失败,并返回。
优选的,所述启动模块105,根据线程池个数n,并发启动n个工作线程。
优选的,所述扫描模块107,根据间隔扫描时间m,每隔时间m运行扫描模块。
优选的,所述任务调度***,还包括:
监控模块113,用于启动监控线程;扫描任务调度运行结果表,发送失败任务的对应命令和/或超时任务的对应命令。
对于***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种任务调度方法及***,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种任务调度方法,其特征在于,包括:
提取调度定时时间到期的任务,并设定所提取的任务为后置任务;
查找后置任务对应的任务调度依赖维表,并通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间;
从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间查找前置任务对应的任务调度运行结果表,其中所述任务调度运行结果表中记录了前置任务的执行状态;
查找所述任务调度运行结果表中前置任务的执行状态是否为成功,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。
2.根据权利要求1所述的方法,其特征在于,提取调度定时时间到期的任务,并设定所提取的任务为后置任务之后,还包括:
通过所述调度定时时间计算后置任务的计划执行时间。
3.根据权利要求2所述的方法,其特征在于,通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间,包括:
后置任务的计划执行时间减去后置任务对应的任务调度依赖维表中依赖前置任务的时间偏移,得到相应的计算值;
将所述计算值结合后置任务对应的任务调度依赖维表中的前置依赖定时时间,计算得到所述后置任务对应的前置任务的计划执行时间。
4.根据权利要求1所述的方法,其特征在于,提取调度定时时间到期的任务,并设定所提取的任务为后置任务之前,还包括:
启动任务调度,读取参数,所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,其中n、x和m为正整数;
启动扫描线程、工作线程和监控线程,初始化任务队列;
根据时区调整基准时钟。
5.根据权利要求4所述的方法,其特征在于,所述提取调度定时时间到期的任务,包括:
扫描线程根据跨天调度天数x提取x天内调度定时时间到期的任务,计算任务调度运行结果表中达到计划执行时间但尚未运行的任务清单。
6.根据权利要求4所述的方法,其特征在于,所述将后置任务放置到任务队列中,等待调度执行之后,还包括:
扫描线程通过信号量通知工作线程检测任务队列并提取所述任务队列中的后置任务;
工作线程检测所述后置任务的任务锁是否与正在执行任务的任务锁冲突,若不冲突,则执行所述后置任务,否则跳过所述后置任务;
若执行所述任务,则执行所述后置任务前,置换任务运行命令中的参数,向任务调度运行结果表***调度记录,并将执行状态初始为正在运行;
运行所述后置任务的任务调度运行结果表中的任务运行命令。
7.根据权利要求6所述的方法,其特征在于,所述运行所述后置任务的任务调度运行结果表中的任务运行命令之后,还包括:
等待所述任务运行命令的返回结果,如果成功,将任务调度运行结果表中的执行状态修改为执行成功,并返回;
如果运行失败,结合任务调度定义表中的失败重调度参数,修改任务运行命令,并重新提交工作线程调度;
如果失败次数超过任务调度定义表中的失败重调度次数,将任务调度运行结果表中的执行状态修改为执行失败,并返回。
8.根据权利要求4所述的方法,其特征在于,所述启动工作线程,包括:
根据线程池个数n,并发启动n个工作线程。
9.根据权利要求4所述的方法,其特征在于:
根据间隔扫描时间m,每隔时间m运行扫描线程。
10.根据权利要求4所述的方法,其特征在于,启动监控线程之后,还包括:
扫描任务调度运行结果表,发送失败任务、超时任务和/或定时超时任务的对应命令。
11.一种任务调度***,其特征在于,包括:
提取模块,用于提取调度定时时间到期的任务,并设定所提取的任务为后置任务;
第二计算模块,用于查找后置任务对应的任务调度依赖维表,并通过所述后置任务对应的任务调度依赖维表计算所述后置任务对应的前置任务的计划执行时间;
查找模块,用于从所述任务调度依赖维表中读取前置任务的任务序号,通过前置任务的任务序号和计划执行时间查找前置任务对应的任务调度运行结果表,其中所述任务调度运行结果表中记录了每个任务的执行状态;
判断模块,用于查找所述任务调度运行结果表中前置任务的执行状态是否为成功,若为执行成功,则将后置任务放置到任务队列中,等待调度执行。
12.根据权利要求11所述的***,其特征在于,还包括:
第一计算模块,用于通过所述调度定时时间计算后置任务的计划执行时间。
13.根据权利要求12所述的***,其特征在于,所述的第二计算模块,包括:
相减子模块,用于后置任务的计划执行时间减去后置任务对应的任务调度依赖维表中的依赖前置任务的时间偏移,得到相应的计算值;
计算子模块,用于将所述计算值结合后置任务对应的任务调度依赖维表中前置依赖定时时间,计算得到所述后置任务对应的前置任务的计划执行时间。
14.根据权利要求11所述的***,其特征在于,还包括:
启动模块,用于启动任务调度,读取参数,所述参数包括线程池个数n、跨天调度天数x、间隔扫描时间m和时区,其中x、n和m为正整数;
初始模块,用于启动扫描线程、工作线程和监控线程,初始化任务队列;
时钟调整模块,用于根据时区调整基准时钟。
15.根据权利要求14所述的***,其特征在于,所述提取模块,包括:
任务清单子模块,用于扫描线程根据跨天调度天数x提取x天内调度定时时间到期的任务,计算任务调度运行结果表中达到计划执行时间但尚未运行的任务清单。
16.根据权利要求14所述的***,其特征在于,还包括:
提取任务模块,用于扫描线程通过信号量通知工作线程检测任务队列并提取所述任务队列中的任务;
测试任务锁模块,用于工作线程检测所述后置任务的任务锁是否与正在执行任务的任务锁冲突,若不冲突,则执行所述后置任务,否则跳过所述后置任务;
置换参数模块,用于若执行后置任务,则执行所述后置任务前,置换任务运行命令中的参数,向任务调度运行结果表***调度记录,并将执行状态初始为正在运行;
任务运行模块,用于运行所述后置任务的任务调度运行结果表中的任务运行命令;
任务重调度模块,用于等待所述任务运行命令的返回结果,如果成功,则将任务调度运行结果表中的执行状态修改为执行成功,并返回;如果运行失败,结合任务调度定义表中的失败重调度参数,修改任务运行命令,并重新提交工作线程调度;如果失败次数超过任务调度定义表中的失败重调度次数,将任务调度运行结果表中的执行状态修改为执行失败,并返回。
17.根据权利要求14所述的***,其特征在于:
所述启动模块根据线程池个数n,并发启动n个工作线程;
所述扫描模块根据间隔扫描时间m,每隔时间m运行扫描线程。
18.根据权利要求14所述的***,其特征在于,还包括:
监控模块,用于扫描任务调度运行结果表,发送失败任务、超时任务和/或定时超时任务的对应命令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110259129.0A CN102981904B (zh) | 2011-09-02 | 2011-09-02 | 一种任务调度方法及*** |
HK13104705.3A HK1177291A1 (zh) | 2011-09-02 | 2013-04-18 | 種任務調度方法及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110259129.0A CN102981904B (zh) | 2011-09-02 | 2011-09-02 | 一种任务调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102981904A true CN102981904A (zh) | 2013-03-20 |
CN102981904B CN102981904B (zh) | 2016-08-03 |
Family
ID=47855962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110259129.0A Active CN102981904B (zh) | 2011-09-02 | 2011-09-02 | 一种任务调度方法及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102981904B (zh) |
HK (1) | HK1177291A1 (zh) |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942104A (zh) * | 2014-04-23 | 2014-07-23 | 北京金山网络科技有限公司 | 一种任务管理方法及装置 |
CN104331323A (zh) * | 2014-10-31 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种日报作业的调度方法及*** |
CN104407847A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
CN104714838A (zh) * | 2013-12-12 | 2015-06-17 | ***通信集团四川有限公司 | 一种任务调度方法及装置 |
CN104935658A (zh) * | 2015-06-17 | 2015-09-23 | 交通银行股份有限公司 | 一种银行任务分配方法及装置 |
CN105138666A (zh) * | 2015-09-06 | 2015-12-09 | 深圳市创梦天地科技有限公司 | 一种数据处理的方法及终端 |
CN105354083A (zh) * | 2015-09-30 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN105468500A (zh) * | 2015-11-16 | 2016-04-06 | 中国建设银行股份有限公司 | 定时任务监控方法和装置 |
CN105701257A (zh) * | 2016-03-31 | 2016-06-22 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
CN105808619A (zh) * | 2014-12-31 | 2016-07-27 | 华为技术有限公司 | 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置 |
CN105893122A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 数据处理作业调度方法、装置及*** |
CN106095540A (zh) * | 2016-05-31 | 2016-11-09 | 上海萌果信息科技有限公司 | 一种基于Quartz框架的任务流程处理方法 |
CN103761148B (zh) * | 2014-01-26 | 2017-04-05 | 北京京东尚科信息技术有限公司 | 集群定时调度任务的控制方法 |
CN106647359A (zh) * | 2016-11-24 | 2017-05-10 | 哈工大机器人集团上海有限公司 | 一种调度方法 |
CN106775977A (zh) * | 2016-12-09 | 2017-05-31 | 北京小米移动软件有限公司 | 任务调度方法、装置及*** |
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云***的作业调度方法和*** |
CN106970834A (zh) * | 2017-01-20 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 任务处理的方法及装置 |
CN107168260A (zh) * | 2017-06-05 | 2017-09-15 | 国网江苏省电力公司电力科学研究院 | 一种电力计量生产的库房管理调度*** |
CN107368360A (zh) * | 2017-06-05 | 2017-11-21 | 努比亚技术有限公司 | 一种定时任务执行方法及定时任务服务器 |
CN107783843A (zh) * | 2016-08-31 | 2018-03-09 | ***通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN108108231A (zh) * | 2016-11-24 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 用户请求的生成、处理方法、装置、***及电子设备 |
CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
CN108509257A (zh) * | 2017-02-28 | 2018-09-07 | 苏宁云商集团股份有限公司 | 一种基于多线程的消息处理方法及装置 |
CN108958915A (zh) * | 2018-06-28 | 2018-12-07 | 中国建设银行股份有限公司 | 定时任务执行方法及装置 |
CN109308219A (zh) * | 2018-08-23 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 任务处理方法、装置及分布式计算机*** |
CN109656693A (zh) * | 2018-10-25 | 2019-04-19 | 中国平安人寿保险股份有限公司 | 任务调度方法、装置、服务器及存储介质 |
CN109669767A (zh) * | 2018-11-30 | 2019-04-23 | 河海大学 | 一种面向多类型上下文依赖的任务封装和调度方法及*** |
CN109684229A (zh) * | 2019-01-08 | 2019-04-26 | 杭州雅拓信息技术有限公司 | 有向无环图的链式依赖分析方法及*** |
CN109725785A (zh) * | 2018-05-08 | 2019-05-07 | 中国平安人寿保险股份有限公司 | 任务执行情况追踪方法、装置、设备及可读存储介质 |
CN109815087A (zh) * | 2019-01-07 | 2019-05-28 | 平安科技(深圳)有限公司 | 任务处理进程监控方法、装置、计算机设备和存储介质 |
CN109901920A (zh) * | 2019-01-18 | 2019-06-18 | 中国平安财产保险股份有限公司 | 任务调度方法及装置、电子终端 |
CN110096345A (zh) * | 2019-03-16 | 2019-08-06 | 平安科技(深圳)有限公司 | 智能任务调度方法、装置、设备及存储介质 |
CN110109740A (zh) * | 2019-05-08 | 2019-08-09 | 宜人恒业科技发展(北京)有限公司 | 一种Crontab命令的执行方法及装置 |
CN110120833A (zh) * | 2019-05-14 | 2019-08-13 | 中国电子科技集团公司第五十四研究所 | 一种星地协同任务管理*** |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度***、存储介质和计算机设备 |
CN110162531A (zh) * | 2018-02-28 | 2019-08-23 | 山东衡昊信息技术有限公司 | 一种分布式并发数据处理任务决策方法 |
CN110362362A (zh) * | 2019-07-24 | 2019-10-22 | 北京明略软件***有限公司 | 任务调度方法及装置、存储介质、电子装置 |
CN110647387A (zh) * | 2019-08-29 | 2020-01-03 | 武汉天喻教育科技有限公司 | 一种教育云大数据任务调度方法与*** |
CN110851245A (zh) * | 2019-09-24 | 2020-02-28 | 厦门网宿有限公司 | 一种分布式异步任务调度方法及电子设备 |
CN111080104A (zh) * | 2019-12-05 | 2020-04-28 | 成都飞机工业(集团)有限责任公司 | 一种基于试飞管控业务的周期性任务管理调度方法 |
CN111290911A (zh) * | 2020-01-21 | 2020-06-16 | 上海悦易网络信息技术有限公司 | 一种用于检测移动终端任务的方法及设备 |
CN111562974A (zh) * | 2020-04-30 | 2020-08-21 | 苏州亿歌网络科技有限公司 | 一种离线数据的采集方法、装置、设备及存储介质 |
CN111580939A (zh) * | 2020-04-01 | 2020-08-25 | 微梦创科网络科技(中国)有限公司 | 一种分级异步处理事务的方法及装置 |
CN111858013A (zh) * | 2020-06-19 | 2020-10-30 | 中科院计算所西部高等技术研究院 | 工作流作业调度控制方法 |
CN111881148A (zh) * | 2020-06-18 | 2020-11-03 | 北京三快在线科技有限公司 | 对象组合的属性确定方法、装置、电子设备 |
CN111881143A (zh) * | 2020-07-30 | 2020-11-03 | 四川长虹电器股份有限公司 | 一种管理etl任务的方法 |
CN112328392A (zh) * | 2020-10-27 | 2021-02-05 | 金蝶软件(中国)有限公司 | 一种数据处理方法及相关设备 |
CN112965793A (zh) * | 2021-01-21 | 2021-06-15 | 中国互联网络信息中心 | 一种面向标识解析数据的数据仓库任务调度方法和*** |
CN113312357A (zh) * | 2021-06-23 | 2021-08-27 | 中国农业银行股份有限公司 | 数据装载方法、装置、设备及存储介质 |
CN115061807A (zh) * | 2022-07-27 | 2022-09-16 | 中建电子商务有限责任公司 | 一种任务按需生成与调度执行的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030225470A1 (en) * | 2002-01-30 | 2003-12-04 | Demetriou John Savvas | Method and system for making a product |
CN101241567A (zh) * | 2008-03-04 | 2008-08-13 | 浪潮集团山东通用软件有限公司 | 基于Windows服务技术的后台自动业务实现方法 |
CN101853182A (zh) * | 2010-05-05 | 2010-10-06 | 中兴通讯股份有限公司 | 基于数据库的任务执行方法及装置 |
CN102054231A (zh) * | 2010-12-30 | 2011-05-11 | 用友软件股份有限公司 | 物料清单生成方法和装置 |
CN102298540A (zh) * | 2011-06-22 | 2011-12-28 | 航天东方红卫星有限公司 | 一种综合效益优先的任务调度方法 |
-
2011
- 2011-09-02 CN CN201110259129.0A patent/CN102981904B/zh active Active
-
2013
- 2013-04-18 HK HK13104705.3A patent/HK1177291A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030225470A1 (en) * | 2002-01-30 | 2003-12-04 | Demetriou John Savvas | Method and system for making a product |
CN101241567A (zh) * | 2008-03-04 | 2008-08-13 | 浪潮集团山东通用软件有限公司 | 基于Windows服务技术的后台自动业务实现方法 |
CN101853182A (zh) * | 2010-05-05 | 2010-10-06 | 中兴通讯股份有限公司 | 基于数据库的任务执行方法及装置 |
CN102054231A (zh) * | 2010-12-30 | 2011-05-11 | 用友软件股份有限公司 | 物料清单生成方法和装置 |
CN102298540A (zh) * | 2011-06-22 | 2011-12-28 | 航天东方红卫星有限公司 | 一种综合效益优先的任务调度方法 |
Cited By (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714838A (zh) * | 2013-12-12 | 2015-06-17 | ***通信集团四川有限公司 | 一种任务调度方法及装置 |
CN103761148B (zh) * | 2014-01-26 | 2017-04-05 | 北京京东尚科信息技术有限公司 | 集群定时调度任务的控制方法 |
CN103942104A (zh) * | 2014-04-23 | 2014-07-23 | 北京金山网络科技有限公司 | 一种任务管理方法及装置 |
CN104407847A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
CN104407847B (zh) * | 2014-10-29 | 2019-05-07 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
CN104331323A (zh) * | 2014-10-31 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种日报作业的调度方法及*** |
CN105808619A (zh) * | 2014-12-31 | 2016-07-27 | 华为技术有限公司 | 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置 |
CN105808619B (zh) * | 2014-12-31 | 2019-08-06 | 华为技术有限公司 | 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置 |
US10204012B2 (en) | 2014-12-31 | 2019-02-12 | Huawei Technologies Co., Ltd. | Impact analysis-based task redoing method, impact analysis calculation apparatus, and one-click resetting apparatus |
CN104935658B (zh) * | 2015-06-17 | 2018-05-08 | 交通银行股份有限公司 | 一种银行任务分配方法及装置 |
CN104935658A (zh) * | 2015-06-17 | 2015-09-23 | 交通银行股份有限公司 | 一种银行任务分配方法及装置 |
CN105893122A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 数据处理作业调度方法、装置及*** |
CN105138666A (zh) * | 2015-09-06 | 2015-12-09 | 深圳市创梦天地科技有限公司 | 一种数据处理的方法及终端 |
CN105138666B (zh) * | 2015-09-06 | 2019-04-26 | 深圳市创梦天地科技有限公司 | 一种数据处理的方法及终端 |
CN105354083A (zh) * | 2015-09-30 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN105354083B (zh) * | 2015-09-30 | 2018-12-04 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN105468500A (zh) * | 2015-11-16 | 2016-04-06 | 中国建设银行股份有限公司 | 定时任务监控方法和装置 |
CN105701257A (zh) * | 2016-03-31 | 2016-06-22 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
CN105701257B (zh) * | 2016-03-31 | 2019-05-21 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
CN106095540B (zh) * | 2016-05-31 | 2020-01-03 | 上海萌果信息科技有限公司 | 一种基于Quartz框架的任务流程处理方法 |
CN106095540A (zh) * | 2016-05-31 | 2016-11-09 | 上海萌果信息科技有限公司 | 一种基于Quartz框架的任务流程处理方法 |
CN107783843A (zh) * | 2016-08-31 | 2018-03-09 | ***通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN107783843B (zh) * | 2016-08-31 | 2021-08-06 | ***通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN106647359A (zh) * | 2016-11-24 | 2017-05-10 | 哈工大机器人集团上海有限公司 | 一种调度方法 |
CN108108231A (zh) * | 2016-11-24 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 用户请求的生成、处理方法、装置、***及电子设备 |
CN106775977B (zh) * | 2016-12-09 | 2020-06-02 | 北京小米移动软件有限公司 | 任务调度方法、装置及*** |
CN106775977A (zh) * | 2016-12-09 | 2017-05-31 | 北京小米移动软件有限公司 | 任务调度方法、装置及*** |
CN106970834A (zh) * | 2017-01-20 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 任务处理的方法及装置 |
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云***的作业调度方法和*** |
CN108509257A (zh) * | 2017-02-28 | 2018-09-07 | 苏宁云商集团股份有限公司 | 一种基于多线程的消息处理方法及装置 |
CN107368360B (zh) * | 2017-06-05 | 2021-01-26 | 和宇健康科技股份有限公司 | 一种定时任务执行方法及定时任务服务器 |
CN107168260B (zh) * | 2017-06-05 | 2019-06-11 | 国网江苏省电力公司电力科学研究院 | 一种电力计量生产的库房管理调度*** |
CN107368360A (zh) * | 2017-06-05 | 2017-11-21 | 努比亚技术有限公司 | 一种定时任务执行方法及定时任务服务器 |
CN107168260A (zh) * | 2017-06-05 | 2017-09-15 | 国网江苏省电力公司电力科学研究院 | 一种电力计量生产的库房管理调度*** |
CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
CN110162531B (zh) * | 2018-02-28 | 2021-04-16 | 山东衡昊信息技术有限公司 | 一种分布式并发数据处理任务决策方法 |
CN110162531A (zh) * | 2018-02-28 | 2019-08-23 | 山东衡昊信息技术有限公司 | 一种分布式并发数据处理任务决策方法 |
CN109725785A (zh) * | 2018-05-08 | 2019-05-07 | 中国平安人寿保险股份有限公司 | 任务执行情况追踪方法、装置、设备及可读存储介质 |
CN108958915A (zh) * | 2018-06-28 | 2018-12-07 | 中国建设银行股份有限公司 | 定时任务执行方法及装置 |
CN109308219B (zh) * | 2018-08-23 | 2021-08-10 | 创新先进技术有限公司 | 任务处理方法、装置及分布式计算机*** |
CN109308219A (zh) * | 2018-08-23 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 任务处理方法、装置及分布式计算机*** |
CN109656693A (zh) * | 2018-10-25 | 2019-04-19 | 中国平安人寿保险股份有限公司 | 任务调度方法、装置、服务器及存储介质 |
CN109669767B (zh) * | 2018-11-30 | 2022-09-23 | 河海大学 | 一种面向多类型上下文依赖的任务封装和调度方法及*** |
CN109669767A (zh) * | 2018-11-30 | 2019-04-23 | 河海大学 | 一种面向多类型上下文依赖的任务封装和调度方法及*** |
CN109815087A (zh) * | 2019-01-07 | 2019-05-28 | 平安科技(深圳)有限公司 | 任务处理进程监控方法、装置、计算机设备和存储介质 |
CN109815087B (zh) * | 2019-01-07 | 2022-05-20 | 平安科技(深圳)有限公司 | 任务处理进程监控方法、装置、计算机设备和存储介质 |
CN109684229A (zh) * | 2019-01-08 | 2019-04-26 | 杭州雅拓信息技术有限公司 | 有向无环图的链式依赖分析方法及*** |
CN109901920A (zh) * | 2019-01-18 | 2019-06-18 | 中国平安财产保险股份有限公司 | 任务调度方法及装置、电子终端 |
CN110096345B (zh) * | 2019-03-16 | 2024-04-12 | 平安科技(深圳)有限公司 | 智能任务调度方法、装置、设备及存储介质 |
CN110096345A (zh) * | 2019-03-16 | 2019-08-06 | 平安科技(深圳)有限公司 | 智能任务调度方法、装置、设备及存储介质 |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度***、存储介质和计算机设备 |
CN110109740B (zh) * | 2019-05-08 | 2021-08-10 | 宜人恒业科技发展(北京)有限公司 | 一种Crontab命令的执行方法及装置 |
CN110109740A (zh) * | 2019-05-08 | 2019-08-09 | 宜人恒业科技发展(北京)有限公司 | 一种Crontab命令的执行方法及装置 |
CN110120833A (zh) * | 2019-05-14 | 2019-08-13 | 中国电子科技集团公司第五十四研究所 | 一种星地协同任务管理*** |
CN110362362A (zh) * | 2019-07-24 | 2019-10-22 | 北京明略软件***有限公司 | 任务调度方法及装置、存储介质、电子装置 |
CN110647387A (zh) * | 2019-08-29 | 2020-01-03 | 武汉天喻教育科技有限公司 | 一种教育云大数据任务调度方法与*** |
CN110647387B (zh) * | 2019-08-29 | 2022-04-01 | 武汉天喻教育科技有限公司 | 一种教育云大数据任务调度方法与*** |
CN110851245A (zh) * | 2019-09-24 | 2020-02-28 | 厦门网宿有限公司 | 一种分布式异步任务调度方法及电子设备 |
CN111080104A (zh) * | 2019-12-05 | 2020-04-28 | 成都飞机工业(集团)有限责任公司 | 一种基于试飞管控业务的周期性任务管理调度方法 |
CN111290911A (zh) * | 2020-01-21 | 2020-06-16 | 上海悦易网络信息技术有限公司 | 一种用于检测移动终端任务的方法及设备 |
CN111580939B (zh) * | 2020-04-01 | 2023-09-01 | 微梦创科网络科技(中国)有限公司 | 一种分级异步处理事务的方法及装置 |
CN111580939A (zh) * | 2020-04-01 | 2020-08-25 | 微梦创科网络科技(中国)有限公司 | 一种分级异步处理事务的方法及装置 |
CN111562974A (zh) * | 2020-04-30 | 2020-08-21 | 苏州亿歌网络科技有限公司 | 一种离线数据的采集方法、装置、设备及存储介质 |
CN111881148A (zh) * | 2020-06-18 | 2020-11-03 | 北京三快在线科技有限公司 | 对象组合的属性确定方法、装置、电子设备 |
CN111858013A (zh) * | 2020-06-19 | 2020-10-30 | 中科院计算所西部高等技术研究院 | 工作流作业调度控制方法 |
CN111881143A (zh) * | 2020-07-30 | 2020-11-03 | 四川长虹电器股份有限公司 | 一种管理etl任务的方法 |
CN112328392A (zh) * | 2020-10-27 | 2021-02-05 | 金蝶软件(中国)有限公司 | 一种数据处理方法及相关设备 |
CN112328392B (zh) * | 2020-10-27 | 2024-05-28 | 金蝶软件(中国)有限公司 | 一种数据处理方法及相关设备 |
CN112965793B (zh) * | 2021-01-21 | 2023-11-21 | 中国互联网络信息中心 | 一种面向标识解析数据的数据仓库任务调度方法和*** |
CN112965793A (zh) * | 2021-01-21 | 2021-06-15 | 中国互联网络信息中心 | 一种面向标识解析数据的数据仓库任务调度方法和*** |
CN113312357A (zh) * | 2021-06-23 | 2021-08-27 | 中国农业银行股份有限公司 | 数据装载方法、装置、设备及存储介质 |
CN115061807A (zh) * | 2022-07-27 | 2022-09-16 | 中建电子商务有限责任公司 | 一种任务按需生成与调度执行的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102981904B (zh) | 2016-08-03 |
HK1177291A1 (zh) | 2013-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981904A (zh) | 一种任务调度方法及*** | |
CN109684053B (zh) | 大数据的任务调度方法和*** | |
US9588822B1 (en) | Scheduler for data pipeline | |
US9311064B1 (en) | Systems and methods for automated centralized build/merge management | |
CN112597373B (zh) | 一种基于分布式爬虫引擎的数据采集方法 | |
CN107832230B (zh) | 基于数据调优的测试方法、设备以及*** | |
CN107784400B (zh) | 一种业务模型的执行方法和装置 | |
CN107220297B (zh) | 面向软件项目的多源异构数据自动收集方法及*** | |
US11366713B2 (en) | System and method for automatically identifying and resolving computing errors | |
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
CN108710532A (zh) | 跨调度平台的依赖实现方法、装置、设备和存储介质 | |
CN101876943A (zh) | 识别大型机环境中多个相关应用之间的关系的***和方法 | |
US9250960B2 (en) | Planning execution of tasks with dependency resolution | |
CN112035230A (zh) | 一种任务调度文件生成方法、装置及存储介质 | |
CN112817710A (zh) | 定时任务处理方法、***、计算机设备及计算机存储介质 | |
CN109298929A (zh) | 定时任务执行时间推荐方法、装置、设备和存储介质 | |
CN112256783A (zh) | 数据导出方法、装置、电子设备及存储介质 | |
CN107291938B (zh) | 订单查询***及方法 | |
CN112948096A (zh) | 一种批量调度方法、装置和设备 | |
CN114416601B (zh) | 一种网络安全信息采集引擎和任务管理***与方法 | |
CN115168384A (zh) | 数据一致性处理方法、装置、服务器及存储介质 | |
US20140068576A1 (en) | Extensible executable modeling | |
CN116303702B (zh) | 一种基于etl的数据并行处理方法、装置、设备和存储介质 | |
CN117667362B (zh) | 一种流程引擎调度方法、***、设备及可读介质 | |
CN116882716B (zh) | 任务调度方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1177291 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1177291 Country of ref document: HK |