CN112835690B - 一种可编排流程的定时作业执行的方法 - Google Patents

一种可编排流程的定时作业执行的方法 Download PDF

Info

Publication number
CN112835690B
CN112835690B CN202011395795.2A CN202011395795A CN112835690B CN 112835690 B CN112835690 B CN 112835690B CN 202011395795 A CN202011395795 A CN 202011395795A CN 112835690 B CN112835690 B CN 112835690B
Authority
CN
China
Prior art keywords
task
node
job
jobdetail
type
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.)
Active
Application number
CN202011395795.2A
Other languages
English (en)
Other versions
CN112835690A (zh
Inventor
谢水庚
郄宇辰
孙睿智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Casicloud Co ltd
Original Assignee
Beijing Casicloud Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Casicloud Co ltd filed Critical Beijing Casicloud Co ltd
Priority to CN202011395795.2A priority Critical patent/CN112835690B/zh
Publication of CN112835690A publication Critical patent/CN112835690A/zh
Application granted granted Critical
Publication of CN112835690B publication Critical patent/CN112835690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种可编排流程的定时作业执行的方法,包括6种任务状态,分别为“失效”、“激活”、“正在执行”、“执行成功”、“执行失败”和“手动触发”,任务状态之间的连接线上的各个方法为新建任务、保存任务、激活任务、冻结任务、手动执行一次、启动Scheduler和调用被重写的executeInternal()方法。通过使调度程序按照预先编排好的作业流程一次性执行多个作业,形成作业流,克服了Quartz自身只能调度单个作业的缺点,同时,可以对编排好的作业流执行定时任务,也可以手动执行一次,对定时任务这一功能进行了扩展。

Description

一种可编排流程的定时作业执行的方法
技术领域
本发明涉及计算机技术领域,具体来说,涉及一种可编排流程的定时作业的方法。
背景技术
作业调度程序是一种计算机应用程序,用于控制作业程序在无人值守的后台执行。
Quartz是一个功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Quartz作为 Spring 默认的调度框架,很容易与 Spring 集成实现灵活可配置的调度功能。
现存的Quartz作业调度方案只能调度单个作业,无法一次性按一定的先后顺序来执行多个作业。当一个作业可以拆分成多个子作业,且子作业之间存在相互依赖的执行顺序时,例如,只有当数据导入完成后,才能对数据进行分析,Quartz便无法满足要求。
发明内容
针对相关技术中的上述技术问题,本发明提出一种可编排流程的定时作业的方法,能够克服现有技术方法的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种可编排流程的定时作业的方法,包括:新建任务,输入定时作业任务的名称、任务描述、所使用的触发器、任务类型、备注后,进行保存;
保存任务,Web前端将刚出创建的任务详情通过JSON格式传输给Java后端,Java后端通过Spring Boot框架将JSON转化为相应的实体类对象,为任务创建新的任务键,判断任务包含的节点数是否匹配和任务类型;
进行激活任务,通过根据任务键在数据库中查询对应的任务记录并映射到实体类对象中,进行判断任务状态,如果状态为“失效”,则将任务状态修改为“激活”;
进行冻结任务,通过根据任务键在数据库中查询对应的任务记录并映射到实体类对象中,进行判断任务状态,如果状态不为“正在运行”且不为“手动触发”时,则将任务状态修改为“失效”;
进行手动执行一次,通过根据任务键在数据库中查询对应的任务记录并映射到实体类对象中,进行判断任务状态,如果状态为“失效”时,则将任务状态修改为“手动触发”;
进行启动Scheduler,Spring框架中封装的Quartz类为QuartzJobBean,令实际的任务类继承QuartzJobBean,并重写executeInternal()方法,在executeInternal()方法中实现任务的实际逻辑,在Scheduler调度实际任务时,调用JobDetail中被重写过的executeInternal()方法;
通过executeInternal()方法内容,判断此JobDetail所对应的任务是否被启动过,没有被启动将JobDetail的运行状态设置为“正在执行”,已被启动过的,则执行失败,执行当前以及后继每个作业点并对任务类型和作业类型进行判断,最后将JobDetail的运行状态设置为“执行成功”,则执行完成。
本发明的有益效果:通过使调度程序按照预先编排好的作业流程一次性执行多个作业,形成作业流,克服了Quartz自身只能调度单个作业的缺点,同时,可以对编排好的作业流执行定时任务,也可以手动执行一次,对定时任务这一功能进行了扩展。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业任务各种状态之间的转换关系示意图;
图2是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业的新建任务模块的流程示意图。
图3是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业的保存任务模块的流程示意图。
图4是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业的激活任务模块的流程示意图。
图5是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业的冻结任务模块的流程示意图。
图6是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业的手动执行一次任务模块的流程示意图。
图7是根据本发明实施例所述的一种可编排流程的定时作业执行的方法的定时作业的executeInternal()方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明实施例所述的一种可编排流程的定时作业执行方法,包括:
如图2所示,新建任务,输入定时作业任务的名称、任务描述、所使用的触发器、任务类型、(任务类型分为单节点任务和多节点任务,如果为单节点任务,则选择要执行的作业类型,然后选择要执行的具体作业;如果为多节点任务,则绘制相应的多节点作业流,多节点作业流包含起始节点、结束节点、以及中间的实际作业节点,每个作业对应作业流中的一个节点。)输入备注后进行保存;
如图3所示,保存任务,先Web前端将任务详情通过JSON格式传输给Java后端,然后Java后端通过Spring Boot框架将JSON转化为相应的自定义实体类ScheduleInputObject的对象scheduleInputObject中,为任务创建新的任务键taskKey,判断任务类型与任务包含的节点数是否匹配。若为单节点任务,则节点数应为1;若为多节点任务,则节点数应大于等于3(包含起始节点、结束节点、以及至少1个实际作业节点)。
根据任务类型taskType判断是否为多节点任务。“s”为单节点任务,“c”为多节点任务。
如果为单节点任务。检查作业节点类型jobType是否合规(是否为实际作业节点)。将作业节点信息jobBaseInfoDTO通过jobBaseInfoDao写入数据库的daxsch_job_node_info数据表中。将任务信息taskBaseInfoDTO通过taskBaseInfoDao写入数据库的daxsch_task_info数据表中并保存。
如果为多节点任务。检查多节点作业流的节点之间的关系是否合规(检查整个多节点作业流是否为一个有向无环图,且所有的路径是否都从起始节点开始,到结束节点结束)。按顺序将作业节点信息jobBaseInfoDTO通过jobBaseInfoDao依次写入数据库的daxsch_job_node_info数据表中。按顺序将作业节点之间的连接信息jobConnDTO通过jobConnDao依次写入数据库的daxsch_job_connection_info数据表中。将任务信息taskBaseInfoDTO通过taskBaseInfoDao写入数据库的daxsch_task_info数据表中并保存。
如图4所示,激活任务,根据任务键taskKey在数据库的daxsch_task_info数据表中查询对应的任务记录并映射到实体类TaskManageDTO的对象taskManageDTO中,根据taskManageDTO的字段runStatus判断任务状态。只有当任务状态为“失效”时,才将任务状态修改为“激活”,并根据任务对应的触发器计算下次执行的时间nextTime,并将新的任务状态及下次执行时间更新到daxsch_task_info数据表对应的任务记录中。根据任务键taskKey在数据库的daxsch_task_info数据表中查询对应的任务记录并映射到实体类TaskInfoDTO的对象taskInfoDTO中。
根据taskInfoDTO中的任务类型taskType判断是否为多节点任务。“s”为单节点任务,“c”为多节点任务。
如果为单节点任务,则根据任务键taskKey在数据库的daxsch_job_node_info数据表中查询对应的作业节点记录并映射到实体类JobNodeInfoDTO的对象jobNodeInfoDTO中。
如果为多节点任务,则根据任务键taskKey在数据库的daxsch_job_node_info数据表中查询该任务的起始节点记录并映射到实体类JobNodeInfoDTO的对象jobNodeInfoDTO中。
根据taskInfoDTO和jobNodeInfoDTO中的信息,配置Quartz中的作业详情JobDetail的对象jobDetail。根据taskInfoDTO和jobNodeInfoDTO中的信息,配置Quartz中的触发器Trigger的对象trigger。
使用Quartz中的调度器Scheduler的对象scheduler检查想要调度的jobDetail是否已存在。如果不存在,则将jobDetail和trigger装载到scheduler中,启动scheduler,并返回True;如果已存在,则直接返回False。
如图5所示,冻结任务,根据任务键taskKey在数据库的daxsch_task_info数据表中查询对应的任务记录并映射到实体类TaskManageDTO的对象taskManageDTO中,根据taskManageDTO的字段runStatus判断任务状态。只有当任务状态不为“正在运行”且不为“手动触发”时,才将任务状态修改为“失效”,并将新的任务状态更新到daxsch_task_info数据表对应的任务记录中。
根据任务键taskKey在数据库的daxsch_task_info数据表中查询对应的任务记录并映射到实体类TaskInfoDTO的对象taskInfoDTO中。
根据taskInfoDTO中的任务类型taskType判断是否为单节点任务或多节点任务。“s”为单节点任务,“c”为多节点任务。
如果为单节点任务,则根据任务键taskKey在数据库的daxsch_job_node_info数据表中查询对应的作业节点记录并映射到实体类JobNodeInfoDTO的对象jobNodeInfoDTO中。
如果为多节点任务,则根据任务键taskKey在数据库的daxsch_job_node_info数据表中查询该任务的起始节点记录并映射到实体类JobNodeInfoDTO的对象jobNodeInfoDTO中。
在scheduler中停止触发器Trigger对象trigger。
在scheduler中删除触发器Trigger对象trigger。
在scheduler中删除作业详情JobDetail对象jobdetail。
如图6所示,手动执行一次,根据任务键taskKey在数据库的daxsch_task_info数据表中查询对应的任务记录并映射到实体类TaskManageDTO的对象taskManageDTO中,根据TaskManageDTO的字段runStatus判断任务状态。只有当任务状态为“失效”时,才将任务状态修改为“手动触发”,并将新的任务状态更新到daxsch_task_info数据表对应的任务记录中。
根据任务键taskKey在数据库的daxsch_task_info数据表中查询对应的任务记录并映射到实体类TaskInfoDTO的对象taskInfoDTO中。
根据taskInfoDTO中的任务类型taskType判断是否为多节点任务。“s”为单节点任务,“c”为多节点任务。
如果为单节点任务,则根据任务键taskKey在数据库的daxsch_job_node_info数据表中查询对应的作业节点记录并映射到实体类JobNodeInfoDTO的对象jobNodeInfoDTO中。
如果为多节点任务,则根据任务键taskKey在数据库的daxsch_job_node_info数据表中查询该任务的起始节点记录并映射到实体类JobNodeInfoDTO的对象jobNodeInfoDTO中。
根据taskInfoDTO和jobNodeInfoDTO中的信息,配置Quartz中的作业详情JobDetail的对象jobDetail。
根据taskInfoDTO和jbNodeInfoDTO中的信息,配置Quartz中的简单触发器SimpleTrigger的对象simpleTrigger。
使用Quartz中的调度器Scheduler的对象scheduler检查想要调度的jobDetail是否已存在。如果不存在,则将jobDetail和simpleTrigger装载到scheduler中,启动scheduler,并返回True;如果已存在,则直接返回False。
启动Scheduler方法,Spring框架中封装的Quartz类为QuartzJobBean。使用时,令实际的任务类继承QuartzJobBean,并重写其中的executeInternal()方法,在executeInternal()实现任务的实际逻辑即可。在Scheduler调度实际任务时,会调用JobDetail中被重写过的executeInternal()方法。
如图7所示,executeInternal(),判断此jobDetail所对应的任务是否已经被启动过。如果没有被启动过,则将jobDetail中的runStatus字段设置为“正在执行”,同时根据触发器trigger中的信息计算任务的本次开始时间以及下次执行时间,并将新的任务状态更新到daxsch_task_info数据表对应的任务记录中;如果已经被被启动过,则本次执行失败,不再执行后续步骤。
执行任务的当前作业节点。执行结束后,使用实体类JobLogDTO的对象jobLogDTO记录作业相关日志,并通过jobLogDao写入数据库的daxsch_job_log数据表中。
根据jobDetail中的taskType字段和jobType字段做如下判断:此任务是否为多节点任务,且当前作业节点不是结束节点,如果是,则进行冻结任务;如果不是,则进行启动Scheduler方法。
根据jobDetail中的taskKey字段和jobKey字段,在daxsch_job_connection_info数据表中查找当前作业节点的所有后继作业节点。
对每个后继作业节点,做如下判断:此作业节点的所有前驱作业节点是否全部执行完成,如果是,则进行保存任务;如果不是,则等待。
将jobDetail中的runStatus字段设置为设定为“执行成功”,并将新的任务状态更新到daxsch_task_info数据表对应的任务记录中。
使用实体类TaskLogDTO的对象taskLogDTO记录任务相关日志,并通过taskLogDao写入数据库的daxsch_task_log数据表中,最后到执行完成。
综上所述,借助于本发明的上述技术方案,通过使调度程序按照预先编排好的作业流程一次性执行多个作业,形成作业流,克服了Quartz自身只能调度单个作业的缺点,同时,可以对编排好的作业流执行定时任务,也可以手动执行一次,对定时任务这一功能进行了扩展。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种可编排流程的定时作业执行的方法,其特征在于,包括:
新建任务,输入定时作业任务的名称、任务描述、所使用的触发器、任务类型、备注后,进行保存;
保存任务,Web前端将刚出创建的任务详情通过JSON格式传输给Java后端,Java后端通过Spring Boot框架将JSON转化为相应的实体类对象,为任务创建新的任务键,判断任务包含的节点数是否匹配和任务类型;
进行激活任务,通过根据任务键在数据库中查询对应的任务记录并映射到实体类对象中,进行判断任务状态,如果状态为失效,则将任务状态修改为激活;
进行冻结任务,通过根据任务键在数据库中查询对应的任务记录并映射到实体类对象中,进行判断任务状态,如果状态不为正在运行且不为手动触发时,则将任务状态修改为失效;
进行手动执行一次,通过根据任务键在数据库中查询对应的任务记录并映射到实体类对象中,进行判断任务状态,如果状态为“失效”时,则将任务状态修改为手动触发;
进行启动Scheduler,Spring框架中封装的Quartz类为QuartzJobBean,令实际的任务类继承QuartzJobBean,并重写executeInternal()方法,在executeInternal()方法中实现任务的实际逻辑,在Scheduler调度实际任务时,调用JobDetail中被重写过的executeInternal()方法;
通过executeInternal()方法,判断此JobDetail所对应的任务是否被启动过,没有被启动将JobDetail的运行状态设置为正在执行,已被启动过的,则执行失败,执行当前以及后继每个作业点并对任务类型和作业类型进行判断,最后将JobDetail的运行状态设置为执行成功,则执行完成。
2.根据权利要求1所述的一种可编排流程的定时作业执行的方法,其特征在于,进行选择任务类型为单节点任务或多节点任务,若为单节点任务,则选择要执行的作业类型和具体作业;若为多节点任务,则绘制相应的多节点作业流,每个作业对应作业流中的一个节点。
3.根据权利要求1所述的一种可编排流程的定时作业执行的方法,其特征在于,保存任务中要进行判断任务类型,若为单节点任务,则要检查作业节点类型是否为实际作业节点,并将作业节点信息写入数据库中,表示保存成功;若为多节点任务,要检查多节点作业流的节点之间的关系是否合规,并按顺序将作业节点之间的连接信息写入数据库中,表示保存成功。
4.根据权利要求1所述的一种可编排流程的定时作业执行的方法,其特征在于,激活任务中要进行判断任务类型为单节点任务或多节点任务,若为单节点任务,则根据任务键在数据库中查询对应的作业节点记录映射到实体类对象中;若为多节点任务,则根据任务键在数据库中查询该任务的起始节点记录映射到实体类对象中,再进行配置Quartz中的作业详情JobDetail对象和触发器Trigger对象,通过使用Quartz中的调度器Scheduler对象进行检查想要调度的JobDetail是否存在,若不存在,则将JobDetail和Trigger装载到Scheduler中,启动Scheduler,并返回True;若存在,直接返回false。
5.根据权利要求1所述的一种可编排流程的定时作业执行的方法,其特征在于,冻结任务时中要进行判断任务类型为单节点任务或多节点任务,若为单节点任务,则根据任务键在数据库中查询对应的作业节点记录并映射到实体类对象中,若为多节点任务,则根据任务键在数据库中查询该任务的起始节点记录映射到实体类对象中,再依次进行停止Quartz中的触发器Trigger对象、删除Quartz中的触发器Trigger对象和删除Quartz中的作业详情JobDetail对象。
6.根据权利要求1所述的一种可编排流程的定时作业执行的方法,其特征在于,手动执行一次时,进行判断任务类型为单节点任务或多节点任务,若为单节点任务,则根据任务键在数据库中查询对应的作业节点记录并映射到实体类对象中,若为多节点任务,则根据任务键在数据库中查询该任务的起始节点记录映射到实体类对象中,通过进行配置Quartz中的作业详情JobDetail对象和配置Quartz中的简单触发器SimpleTrigger对象,再使用Quartz中的调度器Scheduler对象检查想要调度的JobDetail是否存在,若存在,则将JobDetail和SimpleTrigger装载到Scheduler中,启动Scheduler,并返回True;若存在,则直接返回false。
7.根据权利要求1所述的一种可编排流程的定时作业执行的方法,其特征在于,调用executeInternal()方法时,若JobDetail对应的任务被启动过,则将状态设置为正在执行,然后同时要根据触发器Trigger中的信息计算任务的本次开始时间以及下次执行时间,再将新的任务状态更新到数据库中,在根据JobDetail对任务类型和作业类型进行判断时,要判断是否为多节点任务和判断且当前作业节点时不是结束节点,若均是,则进行冻结任务,若均不是,则进行启动Scheduler,然后后根据任务类型和作业类型,在数据库中查找当前作业节点的所有后继作业节点。
8.根据权利要求7所述的一种可编排流程的定时作业执行的方法,其特征在于,对每个后继作业节点,进行做以下判断:此作业节点的所有前驱作业节点是否全部执行完成,如果是,则进行保存任务,如果不是,则等待,最后将JobDetail的运行状态更新到数据库中。
CN202011395795.2A 2021-04-07 2021-04-07 一种可编排流程的定时作业执行的方法 Active CN112835690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011395795.2A CN112835690B (zh) 2021-04-07 2021-04-07 一种可编排流程的定时作业执行的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011395795.2A CN112835690B (zh) 2021-04-07 2021-04-07 一种可编排流程的定时作业执行的方法

Publications (2)

Publication Number Publication Date
CN112835690A CN112835690A (zh) 2021-05-25
CN112835690B true CN112835690B (zh) 2024-04-05

Family

ID=75923441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011395795.2A Active CN112835690B (zh) 2021-04-07 2021-04-07 一种可编排流程的定时作业执行的方法

Country Status (1)

Country Link
CN (1) CN112835690B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101423A1 (zh) * 2014-12-23 2016-06-30 中兴通讯股份有限公司 作业调度方法和云调度服务器
CN110928655A (zh) * 2019-11-11 2020-03-27 深圳前海微众银行股份有限公司 一种任务处理方法及装置
CN111752696A (zh) * 2020-06-25 2020-10-09 武汉众邦银行股份有限公司 一种基于rpc及线程锁的分布式定时任务调度方法
CN112416563A (zh) * 2020-12-28 2021-02-26 中科院计算技术研究所大数据研究院 一种分布式动态定时任务调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150293764A1 (en) * 2014-04-10 2015-10-15 Omprakash VISVANATHAN Method and system to compose and execute business rules

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101423A1 (zh) * 2014-12-23 2016-06-30 中兴通讯股份有限公司 作业调度方法和云调度服务器
CN110928655A (zh) * 2019-11-11 2020-03-27 深圳前海微众银行股份有限公司 一种任务处理方法及装置
CN111752696A (zh) * 2020-06-25 2020-10-09 武汉众邦银行股份有限公司 一种基于rpc及线程锁的分布式定时任务调度方法
CN112416563A (zh) * 2020-12-28 2021-02-26 中科院计算技术研究所大数据研究院 一种分布式动态定时任务调度方法

Also Published As

Publication number Publication date
CN112835690A (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
Olsson et al. A dataflow approach to event‐based debugging
EP4120076A1 (en) Task scheduling method and apparatus
US7634687B2 (en) Checkpoint restart system and method
US8793115B2 (en) Interface converter for unified view of multiple computer system simulations
US20150234666A1 (en) Fast computer startup
JP2004505333A (ja) 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語
CN111125444A (zh) 大数据任务调度管理方法、装置、设备及存储介质
US20030120978A1 (en) Method and apparatus for a programming language having fully undoable, timed reactive instructions
US7703077B2 (en) Programming model to detect deadlocks in concurrent programs
CN110489086B (zh) 流程执行控制方法、装置、计算机设备及存储介质
US7779302B2 (en) Automated testing framework for event-driven systems
WO2023082567A1 (zh) 一种用于神经网络计算的动态图执行方法及装置
WO2007079233A2 (en) System and method for software generation and execution
WO2022227454A1 (zh) 持续集成自动化测试系统和方法、电子设备、存储介质
CN114756357B (zh) 一种基于jvm的非阻塞分布式计划任务调度方法
JP2755437B2 (ja) 通信制御プログラムの連続運転保証処理方法
CN102098303A (zh) 实现自动化升级的硬件防火墙及其升级方法
CN112835690B (zh) 一种可编排流程的定时作业执行的方法
CN109189607B (zh) 一种应用程序断点恢复的方法
CN110765746A (zh) 基于事件代理的表单自动生成方法和系统
CN111104207A (zh) 一种基于SpringBoot实现动态配置定时任务的方法
CN111142861B (zh) 结构化综控系统集成方法及装置
US20200278845A1 (en) Method and system for development of web software application
CN115934288A (zh) 定时任务的管理方法、装置、设备和存储介质
US11243873B2 (en) Concurrency testing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant