本发明专利技术公开了一种基于quartz框架的任务执行方法及装置。该方法包括:步骤1,在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在上一任务中某业务逻辑的数据状态,如果存在,执行步骤2,否则,执行步骤3;步骤2,根据数据库中存储的数据状态完成上一任务中的相应业务逻辑,执行步骤3;步骤3,将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态从数据库中删除。借助于本发明专利技术的技术方案,能够保证任务调度中,任务数据不会出现不一致情况,对于任务不允许重复执行的任务数据,能够保证其执行的唯一性。
【技术实现步骤摘要】
本专利技术涉及计算机
,特别是涉及一种基于quartz框架的任务执行方法及装置。
技术介绍
在现有技术中,在电商系统业务开发时,需要大量的后台定时操作任务,任务的调度不允许存在最终数据不一致情况。在现有的技术方案中,quartz框架在每个任务执行完成后,会将上下文内容存储至数据库中。但是,在一次任务执行中,由于任务中的业务逻辑过多,有可能在任务执行到一半 时,就因为外部或内部原因异常退出,导致出现了脏数据,违反了业务逻辑。
技术实现思路
本专利技术提供一种基于quartz框架的任务执行方法及装置,以解决现有技术中在任务执行过程中异常退出导致数据错误的问题。本专利技术提供一种基于quartz框架的任务执行方法,包括步骤I,在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在上一任务中某业务逻辑的数据状态,如果存在,执行步骤2,否则,执行步骤3 ;步骤2,根据数据库中存储的数据状态完成上一任务中的相应业务逻辑,执行步骤3 ;步骤3,将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态从数据库中删除。优选地,使用步骤I ^替换步骤1,使用步骤3'替换步骤3:步骤I',在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在未被标记为业务逻辑成功执行的上一任务中某业务逻辑的数据状态,如果存在,执行步骤2,否则,执行步骤3丨;步骤3 ',将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态标记为业务逻辑成功执行。优选地,根据数据库中存储的数据状态完成上一任务中的相应业务逻辑的方式包括根据相应业务逻辑进行回滚、和/或重做。优选地,上述方法还包括如果执行当前任务的业务逻辑失败,则退出当前任务,结束操作。本专利技术还提供了一种基于quartz框架的任务执行装置,包括第一查看模块,用于在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在上一任务中某业务逻辑的数据状态,如果存在,调用第一处理模块,否则,调用第二处理模块;第一处理模块,用于根据数据库中存储的数据状态完成上一任务中的相应业务逻辑,调用第二处理模块;第二处理模块,用于将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态从数据库中删除。优选地,使用第二查看模块替换第一查看模块,使用第三处理模块替换第二处理模块第二查看模块,用于在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在未被标记为业务逻辑成功执行的上一任务中某业务逻辑的数据状态,如果存在,调用第一处理模块,否则,调用第三处理模块;第三处理模块,用于将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态标记为业务逻辑成功执行。优选地,第一处理模块根据数据库中存储的数据状态完成上一任务中的相应业务逻辑的方式包括根据相应业务逻辑进行回滚、和/或重做。优选地,第二处理模块进一步用于如果执行当前任务的业务逻辑失败,则退出当前任务,结束操作。本专利技术有益效果如下 在不改变quartz本身存储框架的基础上,通过将任务执行过程中的业务逻辑数据状态存储到数据库中,解决了现有技术中在任务执行过程中异常退出导致数据错误的问题,能够保证任务调度中,任务数据不会出现不一致情况,对于任务不允许重复执行的任务数据,能够保证其执行的唯一性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I是本专利技术实施例的基于quartz框架的任务执行方法的流程图;图2是本专利技术实施例的确定quartz框架是否能够启动当前任务的示意图;图3是本专利技术实施例的执行逻辑任务的详细处理的流程图;图4是本专利技术实施例的基于quartz框架的任务执行装置的结构示意图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了解决现有技术中在任务执行过程中异常退出导致数据错误的问题,本专利技术提供了一种基于quartz框架的任务执行方法及装置,在成熟的quartz框架的基础上进行了封装,将数据库连接池(DB connection pool)部分进行了优化和重写,废弃了 C3P0的方式,改用自己的数据库连接池管理。在不改变quartz本身存储框架的基础上,将数据存储进行改造和优化,使其在任务执行中即可实时持久化,保证数据准确性。以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。方法实施例根据本专利技术的实施例,提供了一种基于quartz框架的任务执行方法,图I是本专利技术实施例的基于quartz框架的任务执行方法的流程图,如图I所示,根据本专利技术实施例的基于quartz框架的任务执行方法包括如下处理步骤101,在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在上一任务中某业务逻辑的数据状态,如果存在,执行步骤102,否则,执行步骤103 ;步骤102,根据数据库中存储的数据状态完成上一任务中的相应业务逻辑,执行步骤 103 ;步骤103,将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态从数据库中删除。 优选地,在本专利技术实施例中,可以使用步骤101 '替换步骤101,使用步骤103 '替换步骤103,因此,根据本专利技术实施例的基于quartz框架的任务执行方法具体包括如下处理步骤101 7在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在未被标记为业务逻辑成功执行的上一任务中某业务逻辑的数据状态,如果存在,执行步骤102,否则,执行步骤103 ’ ;步骤102,根据数据库中存储的数据状态完成上一任务中的相应业务逻辑,执行步骤103丨;步骤103丨,将当前任务中所有业务逻辑的数据状态存储到数据库中,并执行当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态标记为业务逻辑成功执行。优选地,在本专利技术实施例的步骤102中,根据数据库中存储的数据状态完成上一任务中的相应业务逻辑的方式包括根据相应业务逻辑进行回滚、和/或重做。此外,在本专利技术实施例的步骤103 ’中,如果执行当前任务的业务逻辑失败,则退出当前任务,结束操作。图2是本专利技术实施例的确定quartz框架是否能够启动当前任务的示意图,在步骤101和步骤101 '中,确定quartz框架是本文档来自技高网...
【技术保护点】
一种基于quartz框架的任务执行方法,其特征在于,包括:步骤1,在确定quartz框架能够启动当前任务时,查看预先设置的数据库中是否存在上一任务中某业务逻辑的数据状态,如果存在,执行步骤2,否则,执行步骤3;步骤2,根据所述数据库中存储的所述数据状态完成所述上一任务中的相应业务逻辑,执行步骤3;步骤3,将当前任务中所有业务逻辑的数据状态存储到所述数据库中,并执行所述当前任务的业务逻辑,将执行成功的业务逻辑所对应的数据状态从所述数据库中删除。
【技术特征摘要】
【专利技术属性】
技术研发人员:姜志伟,袁德志,
申请(专利权)人:五八有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。