CN113238735A - 一种可定义流水的项目交付任务创建方法、平台及系统 - Google Patents

一种可定义流水的项目交付任务创建方法、平台及系统 Download PDF

Info

Publication number
CN113238735A
CN113238735A CN202110585716.2A CN202110585716A CN113238735A CN 113238735 A CN113238735 A CN 113238735A CN 202110585716 A CN202110585716 A CN 202110585716A CN 113238735 A CN113238735 A CN 113238735A
Authority
CN
China
Prior art keywords
task
project
sub
delivery
queue
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.)
Pending
Application number
CN202110585716.2A
Other languages
English (en)
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.)
Ouye Yunshang Co ltd
Original Assignee
Ouye Yunshang 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 Ouye Yunshang Co ltd filed Critical Ouye Yunshang Co ltd
Priority to CN202110585716.2A priority Critical patent/CN113238735A/zh
Publication of CN113238735A publication Critical patent/CN113238735A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

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

Abstract

本发明涉及一种可定义流水的项目交付任务创建方法、平台及系统,所述方法首先启动项目并初始化执行者;然后针对每一个项目创建自定义发布任务,并进行任务子流程顺序规划,获取相应的任务处理方法,将自定义的各项属性和子流程内容存取任务子流程集合内;利用定时任务组件对执行者进行数量扩充或缩减调整;获取到任务对象后,执行者遍历任务子流程集合内的子流程对象,调用响应的任务处理方法后执行任务。与现有技术相比,本发明具有满足多任务并行运行、支持子流程灵活配置、保证任务数据的隔离和安全性等优点。

Description

一种可定义流水的项目交付任务创建方法、平台及系统
技术领域
本发明涉及计算机应用技术领域,尤其是涉及一种可定义流水的项目交付任务创建方法、平台及系统。
背景技术
软件项目交付任务常见的流程一般为:项目仓库代码文件拉取、项目文件配置替换与编译、项目产物的交付、项目发布状态确认等。然而实际的项目交付,会根据实际的项目类型不同,需要创建不同的交付流程,流程的可自定义性便成为了刚性需求。同时,随着业务不断发展,业务微服务化进程加速,项目数目会不断增加,项目的交付频率也会随之增加,交付工具的并发能力显得十分必要。然而现有的交付方法存在以下问题:1、项目交付过程单一,无法满足多类型任务;2、项目交付无法满足并发执行;3、项目交付队列处理,无法根据队列内任务数量自行变动。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种可定义流水的项目交付任务创建方法、平台及系统。
本发明的目的可以通过以下技术方案来实现:
一种可定义流水的项目交付任务创建方法,该方法包括如下步骤:
S1:启动项目并初始化执行者。具体地:
11)提交需求客户发布项目需求;
12)读取项目配置,初始化任务队列及核心job执行者数量;
13)利用定时任务组件,初始化队列监听执行者,监控任务队列状态。
S2:针对每一个项目创建自定义发布任务,并进行任务子流程顺序规划,获取相应的任务处理方法,将自定义的各项属性和子流程内容存取任务子流程集合内。具体地:
21)针对每一个项目创建自定义发布任务,即对任务对象定义多个属性,将任务过程中参数变量统一存入线程上下文中;同时进行子流程顺序规划,实现相应的具体任务处理方法,并将其放入任务的子流程集合内;
22)配置流程参数;
23)保存发布流程,执行任务发布。
优选地,步骤21)中,通过ThreadLocal对象将任务过程中参数变量统一存入线程上下文中。
优选地,步骤22)中,配置的流程参数包括码文件拉取地址、打包编译命令和发布脚本等信息。
S3:利用定时任务组件对执行者进行数量扩充或缩减调整。
所述定时任务组件提供用以对任务执行者数量进行增删改查的api接口,利用api接口,当任务队列内的任务数量多于当前核心job执行者数量时,调用接口服务,创建临时执行者;当任务队列内的任务数量小于当前核心job执行者数量或临时任务空闲时间到达了配置的过期时间时,调用接口方法,删除多余的队列执行者。
优选地,所述定时任务组件采用开源组件xxl-job。
S4:获取到任务对象后,执行者遍历任务子流程集合内的子流程对象,调用响应的任务处理方法后执行任务。
本发明还提出一种可定义流水的项目交付任务创建平台,该平台包括服务器、数据库和多个客户终端:
所述客户终端:用以发布不同项目需求,发起任务;
所述服务器:分别与客户终端、数据库信号连接,用以对任务流程及任务队列状态进行管控,对项目进行任务创建及子流程规划操作,并提供任务相关服务;
数据库,用以读取项目配置,初始化任务队列及队列监听执行者。
进一步地,所述服务器包括:
任务管理服务器,用以接收客户终端发布的项目需求,将项目分类为若干个任务,根据任务开发进度及交付期限调整任务分配;
文件存储服务器,用以存储项目需求文件;
代码管理服务器,用以根据任务需求创建初始框架代码,供上传开发结果代码,并将代码部署至测试环境供客户终端调用。
本发明还提供一种项目任务交付系统,包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,其特征在于,所述处理器被配置为执行该计算机程序时实现上述方法的步骤。
本发明提供的可定义流水的项目交付任务创建方法、平台及系统,相较于现有技术至少包括如下有益效果:
1)抽象任务组成,支持子流程灵活配置,同时根据子任务流程类型,提供相应的信息配置;
2)可满足多任务并行运行,任务创建完成,放入全局的任务队列后,由开源组件xxl-job提供的执行者调用队列的获取任务节点线程阻塞方法,获取到任务对象后,执行者会遍历其子流程集合内的子流程对象,调用其处理方法进行执行;
3)任务间项目隔离,任务对象定义了多个属性,通过ThreadLocal对象将任务过程中参数变量统一存入线程上下文中,保证任务数据的隔离和安全性。
4)任务执行者灵活配置,根据任务队列的情况,通过调用定时任务组件接口,来对执行者数量进行扩充或缩减,提高用户体验。
附图说明
图1为实施例中本发明的装置结构可定义流水的项目交付任务创建方法的主要流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
本发明涉及一种可定义流水的项目交付任务创建方法,该方法基于客户终端、服务器和数据库实现。客户终端为多个,供不同用户发布项目需求。服务器分别与客户终端、数据库信号连接。服务器用于对项目进行任务创建及子流程规划操作,并提供参数配置、任务发布、代码管理等任务相关服务。数据库用于读取项目配置,初始化任务队列及队列监听执行者。
所述方法的具体步骤包括:
步骤一、项目启动初始化执行者。
1.1)提交需求客户通过客户终端向服务器发布项目需求。
1.2)数据库读取项目配置,初始化任务队列及核心job执行者数量。
1.3)利用开源组件xxl-job定时任务组件,初始化队列监听执行者,监控任务队列状态。
步骤二、交付任务创建及自定义。
2.1)针对每一个项目创建自定义发布任务,即对任务对象定义多个属性,通过ThreadLocal对象将任务过程中参数变量统一存入线程上下文中,保证任务数据的隔离和安全性;同时进行子流程顺序规划,实现其具体的任务处理方法,并将其放入任务的子流程集合内。例如项目api模块,只需定义项目拉取流程、配置替换流程、产物发布流程。
2.2)配置流程参数,如代码文件拉取地址、打包编译命令、发布脚本等。
2.3)保存发布流程,执行任务发布。
步骤三、执行者调整策略。
开源组件xxl-job,用于提供任务执行者增删改查的api,利用api接口,当任务队列内,任务数量多于当前核心job执行者数量时,调用接口服务,创建临时执行者。当任务队列内,任务数量小于当前核心job执行者数量或临时任务空闲时间到达了配置的过期时间时,调用接口方法,删除多余的队列执行者。
步骤四、执行者执行任务。
获取到任务对象后,执行者遍历其子流程集合内的子流程对象,调用其处理方法进行任务执行。
本发明还提出一种实现上述方法的平台,该平台是实施上述方法的一种方式,上述方法也可以通过其他软件平台实现。
本发明提出一种可定义流水的项目交付任务创建平台,包括服务器、多个客户终端和数据库。
客户终端,用于发布不同项目需求,发起任务。
服务器,分别与客户终端、数据库信号连接,对任务流程及任务队列状态进行管控,对项目进行任务创建及子流程规划操作,并提供参数配置、任务发布、代码管理、文件管理等任务相关服务,
数据库,用于读取项目配置,初始化任务队列及队列监听执行者。
服务器包括任务管理服务器、文件存储服务器、代码管理服务器,根据实际应用场景和需求,服务器还可扩展其他模块提供关联服务。其中:任务管理服务器用于接收客户终端发布的项目需求,将项目分类为若干个任务,根据任务开发进度及交付期限调整任务分配;文件存储服务器用于存储项目需求文件;代码管理服务器用于根据任务需求创建初始框架代码,供上传开发结果代码,并将代码部署至测试环境供客户终端调用。
平台操作的具体过程为:服务器接收客户终端发送的项目需求,并对各项目进行参数配置后,将所有项目分别并存储至数据库。数据库读取项目配置,初始化任务队列及核心job执行者数量。服务器利用开源组件xxl-job定时任务组件,初始化队列监听执行者,监控任务队列状态。对于每一个项目创建自定义发布任务,服务器都要设定任务子流程并对各子流程顺序进行规划,以实现各项目任务的任务处理方法,并将其放入任务的子流程集合内。自定义结束后配置流程参数,如代码文件拉取地址、打包编译命令、发布脚本等。配置后保存发布流程,执行任务发布。
任务发布后,开源组件xxl-job实时提供任务执行者增删改查的api,利用api接口,当任务队列内,任务数量多于当前核心job执行者数量时,调用接口服务,创建临时执行者。当任务队列内,任务数量小于当前核心job执行者数量或临时任务空闲时间到达了配置的过期时间时,调用接口方法,删除多余的队列执行者。当获取到任务对象后,执行者遍历其子流程集合内的子流程对象,调用其处理方法进行执行。
本发明另外提出一种项目任务交付系统,包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,该处理器被配置为执行该计算机程序时实现上述可定义流水的项目交付任务创建方法的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种可定义流水的项目交付任务创建方法,其特征在于,包括下列步骤:
1)启动项目并初始化执行者;
2)针对每一个项目创建自定义发布任务,并进行任务子流程顺序规划,获取相应的任务处理方法,将自定义的各项属性和子流程内容存取任务子流程集合内;
3)利用定时任务组件对执行者进行数量扩充或缩减调整;
4)获取到任务对象后,执行者遍历任务子流程集合内的子流程对象,调用响应的任务处理方法后执行任务。
2.根据权利要求1所述的可定义流水的项目交付任务创建方法,其特征在于,步骤1)的具体步骤包括:
11)提交需求客户发布项目需求;
12)读取项目配置,初始化任务队列及核心job执行者数量;
13)利用定时任务组件,初始化队列监听执行者,监控任务队列状态。
3.根据权利要求1所述的可定义流水的项目交付任务创建方法,其特征在于,步骤2)的具体步骤包括:
21)针对每一个项目创建自定义发布任务,即对任务对象定义多个属性,将任务过程中参数变量统一存入线程上下文中;同时进行子流程顺序规划,实现相应的具体任务处理方法,并将其放入任务的子流程集合内;
22)配置流程参数;
23)保存发布流程,执行任务发布。
4.根据权利要求2所述的可定义流水的项目交付任务创建方法,其特征在于,步骤3)中,所述定时任务组件提供用以对任务执行者数量进行增删改查的api接口,利用api接口,当任务队列内的任务数量多于当前核心job执行者数量时,调用接口服务,创建临时执行者;当任务队列内的任务数量小于当前核心job执行者数量或临时任务空闲时间到达了配置的过期时间时,调用接口方法,删除多余的队列执行者。
5.根据权利要求4所述的可定义流水的项目交付任务创建方法,其特征在于,步骤3)中,所述定时任务组件采用开源组件xxl-job。
6.根据权利要求3所述的可定义流水的项目交付任务创建方法,其特征在于,步骤21)中,通过ThreadLocal对象将任务过程中参数变量统一存入线程上下文中。
7.根据权利要求3所述的可定义流水的项目交付任务创建方法,其特征在于,步骤22)中,配置的流程参数包括码文件拉取地址、打包编译命令和发布脚本。
8.一种可定义流水的项目交付任务创建平台,其特征在于,该平台包括服务器、数据库和多个客户终端:
所述客户终端:用以发布不同项目需求,发起任务;
所述服务器:分别与客户终端、数据库信号连接,用以对任务流程及任务队列状态进行管控,对项目进行任务创建及子流程规划操作,并提供任务相关服务;
数据库,用以读取项目配置,初始化任务队列及队列监听执行者。
9.根据权利要求8所述的可定义流水的项目交付任务创建平台,其特征在于,所述服务器包括:
任务管理服务器,用以接收客户终端发布的项目需求,将项目分类为若干个任务,根据任务开发进度及交付期限调整任务分配;
文件存储服务器,用以存储项目需求文件;
代码管理服务器,用以根据任务需求创建初始框架代码,供上传开发结果代码,并将代码部署至测试环境供客户终端调用。
10.一种项目任务交付系统,包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,其特征在于,所述处理器被配置为执行该计算机程序时实现如权利要求1~7中任一项所述方法的步骤。
CN202110585716.2A 2021-05-27 2021-05-27 一种可定义流水的项目交付任务创建方法、平台及系统 Pending CN113238735A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110585716.2A CN113238735A (zh) 2021-05-27 2021-05-27 一种可定义流水的项目交付任务创建方法、平台及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110585716.2A CN113238735A (zh) 2021-05-27 2021-05-27 一种可定义流水的项目交付任务创建方法、平台及系统

Publications (1)

Publication Number Publication Date
CN113238735A true CN113238735A (zh) 2021-08-10

Family

ID=77139206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110585716.2A Pending CN113238735A (zh) 2021-05-27 2021-05-27 一种可定义流水的项目交付任务创建方法、平台及系统

Country Status (1)

Country Link
CN (1) CN113238735A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560948A (zh) * 2023-07-07 2023-08-08 建信金融科技有限责任公司 一种数据处理方法和装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120812A1 (en) * 2013-10-28 2015-04-30 Parallels Method for web site publishing using shared hosting
CN107688926A (zh) * 2017-08-24 2018-02-13 成都海谱科技有限公司 一种基于自动流转的可定义型时间任务推进方法
CN108733476A (zh) * 2017-04-20 2018-11-02 北京京东尚科信息技术有限公司 一种执行多任务的方法和装置
CN110688101A (zh) * 2019-09-26 2020-01-14 山东浪潮通软信息科技有限公司 一种基于xxl-job实现分布式调度任务的方法及系统
CN111414172A (zh) * 2020-03-18 2020-07-14 时时同云科技(成都)有限责任公司 应用软件自动部署发布系统及方法
CN111427694A (zh) * 2020-03-26 2020-07-17 北京金山云网络技术有限公司 任务执行方法、装置、系统和服务器
CN112153093A (zh) * 2019-06-28 2020-12-29 北京京东尚科信息技术有限公司 基于集群的任务调度方法、装置、设备及可读存储介质
CA3159788A1 (en) * 2019-11-06 2021-05-14 10353744 Canada Ltd. Version releasing method and device based on multi-environment offline task
CN112822272A (zh) * 2021-01-08 2021-05-18 上海理想信息产业(集团)有限公司 微服务灰度发布方法及装置、计算机设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120812A1 (en) * 2013-10-28 2015-04-30 Parallels Method for web site publishing using shared hosting
CN108733476A (zh) * 2017-04-20 2018-11-02 北京京东尚科信息技术有限公司 一种执行多任务的方法和装置
CN107688926A (zh) * 2017-08-24 2018-02-13 成都海谱科技有限公司 一种基于自动流转的可定义型时间任务推进方法
CN112153093A (zh) * 2019-06-28 2020-12-29 北京京东尚科信息技术有限公司 基于集群的任务调度方法、装置、设备及可读存储介质
CN110688101A (zh) * 2019-09-26 2020-01-14 山东浪潮通软信息科技有限公司 一种基于xxl-job实现分布式调度任务的方法及系统
CA3159788A1 (en) * 2019-11-06 2021-05-14 10353744 Canada Ltd. Version releasing method and device based on multi-environment offline task
CN111414172A (zh) * 2020-03-18 2020-07-14 时时同云科技(成都)有限责任公司 应用软件自动部署发布系统及方法
CN111427694A (zh) * 2020-03-26 2020-07-17 北京金山云网络技术有限公司 任务执行方法、装置、系统和服务器
CN112822272A (zh) * 2021-01-08 2021-05-18 上海理想信息产业(集团)有限公司 微服务灰度发布方法及装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
又拍云: "分布式任务调度平台 XXL-JOB", pages 1 - 6, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/36631868?hmsr=toutiao.io&utm_id=0> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560948A (zh) * 2023-07-07 2023-08-08 建信金融科技有限责任公司 一种数据处理方法和装置

Similar Documents

Publication Publication Date Title
CN111580832A (zh) 应用于异构多云环境的应用发布系统及方法
CN109298868B (zh) 测绘影像数据处理软件智能动态部署及卸载方法
CN108681461A (zh) 一种集群软件系统不停机更新的方法、系统及相关装置
US20060259386A1 (en) Building digital assets for use with software applications
CN113569987A (zh) 模型训练方法和装置
CN108491254A (zh) 一种数据仓库的调度方法及装置
US9542173B2 (en) Dependency handling for software extensions
US20150120674A1 (en) Virtual program installation and state restoration
CN102572896A (zh) 一种无线通讯系统升级方法及升级装置
CN111124636A (zh) 一种流程编排引擎及其控制方法
WO2024067155A1 (zh) 通过编排方式解决微服务外部依赖复杂性的系统及方法
CN114356750A (zh) 测试方法、装置、计算机设备和存储介质
CN113238735A (zh) 一种可定义流水的项目交付任务创建方法、平台及系统
CN115907683A (zh) 基于金融产品管理的工作流引擎的实现系统及其方法
CN106789200A (zh) 一种云平台自定义自动部署的方法
US20090024424A1 (en) System and method for dynamic linking of business processes
US20090069919A1 (en) Intelligent mass production planning and routing system
CN117009238A (zh) 数据测试方法、装置、电子设备、存储介质和程序产品
US20200348926A1 (en) System and method for automating environment management of one or more software applications
CN116414417A (zh) 版本更新方法、装置、非易失性存储介质及电子设备
CN115951970A (zh) 一种异构多仿真软件集成开发环境
CN115292164A (zh) 基于VirtualBox的分布式自动化测试方法
CN114936152A (zh) 应用测试方法及设备
CN114840232A (zh) 升级应用的方法及装置
CN114398155A (zh) 一种应用程序自动化部署流水线配置方法及系统

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