CN108874498A - 一种集中式的定时任务管理方法 - Google Patents

一种集中式的定时任务管理方法 Download PDF

Info

Publication number
CN108874498A
CN108874498A CN201710320211.7A CN201710320211A CN108874498A CN 108874498 A CN108874498 A CN 108874498A CN 201710320211 A CN201710320211 A CN 201710320211A CN 108874498 A CN108874498 A CN 108874498A
Authority
CN
China
Prior art keywords
file
container
mirror image
management method
host
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
CN201710320211.7A
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.)
Shanghai Qincang Information Science & Technology Co Ltd
Original Assignee
Shanghai Qincang Information Science & Technology 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 Shanghai Qincang Information Science & Technology Co Ltd filed Critical Shanghai Qincang Information Science & Technology Co Ltd
Priority to CN201710320211.7A priority Critical patent/CN108874498A/zh
Publication of CN108874498A publication Critical patent/CN108874498A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种集中式的定时任务管理方法,在代码管理工具中新建项目,并在所述项目中建立定时任务文件和定时任务需要调用的脚本文件;构建所述项目的容器镜像,并把所述脚本文件所在的文件夹都拷入所述容器镜像;将所述容器镜像上传到持续集成系统,随后,将所述容器镜像内的定时任务文件和脚本文件挂载到宿主机上,并指定用于启动容器的运行器;在所述宿主机上启动所述运行器。本发明简单易行,不仅具有版本控制管理的功能,还有效解决了定时任务管理分散、配置复杂等问题。

Description

一种集中式的定时任务管理方法
技术领域
本发明涉及计算机的定时任务领域,特别是涉及一种集中式的定时任务管理方法。
背景技术
当前有很多定时任务触发方法,如:基于linux内核的定时任务crontab、基于第三方工具(比如Jenkins)的定时任务等。这些定时任务能很精准的触发,但是管理起来却比较困难。
在一些场合,现有的定时任务无法满足需求,比如:1)定时任务的版本管理:有时候定时任务不小心被删除或修改,就必须重新创建,无法直接还原到上一个版本;2)定时任务调用其他脚本的统一管理:被定时任务调用的脚本一般会放到机器的某个路径,一旦有更新,就必须登录到机器上把这个文件更新,如果有被调用文件数量很多,管理起来就比较复杂。第三方工具Jenkins也可以把定时触发的脚本放到gitlab中管理,但是定时任务和脚本分开存放,就不能很好的集中地管理定时任务与触发脚本之间的对应关系。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种集中式的定时任务管理方法,用于解决现有技术中的上述问题。
为实现上述目的及其他相关目的,本发明提供一种定时任务管理方法,包括:在代码管理工具中新建项目,并在所述项目中建立定时任务文件和定时任务需要调用的脚本文件;构建所述项目的容器镜像,并把所述脚本文件所在的文件夹都拷入所述容器镜像;将所述容器镜像上传到持续集成系统,随后,将所述容器镜像内的定时任务文件和脚本文件挂载到宿主机上,并指定用于启动容器的运行器;在所述宿主机上启动所述运行器。
于本发明一实施例中,挂载时是令所述宿主机的内容覆盖所述容器的内容,其实现方式为:在所述容器启动时,把所述容器内的脚本文件复制到挂载出去的路径下以同步到所述宿主机上。
于本发明一实施例中,在把所述脚本文件所在的文件夹都拷入所述容器镜像之后,还包括:指定所述脚本文件的文件读写权限,并赋予所述脚本文件可执行权限。
于本发明一实施例中,若在多个宿主机上运行多个定时任务,则在对应的宿主机上启动对应的运行器。
于本发明一实施例中,所述运行器预先在所述持续集成系统中完成注册,其标签名不变。
于本发明一实施例中,所述运行器预先在所述项目中完成注册,其标签名不变。
于本发明一实施例中,所述代码管理工具为gitlab,所述定时任务文件为crontab定时任务文件,所述容器镜像是由docker构建的,所述持续集成系统为gitlab CI,所述运行器为gitlab-runner,所述宿主机为Linux宿主机。
于本发明一实施例中,所述gitLab CI通过.gitlab-ci.yml文件进行持续集成的配置。
如上所述,本发明的一种集中式的定时任务管理方法,把定时任务和定时任务所使用的脚本(代码)集中起来,并使用代码管理工具,如gitlab,做版本控制管理,能非常便捷、简单地启动定时任务和定时任务相对应的脚本。如果脚本被修改出了问题,可以快速回滚。此外,本发明可以运行很复杂的定时任务,比如:定时任务配合docker容器技术,可以启动一整套环境部署、测试等,启动速度快、稳定性高而且容易管理。
附图说明
图1显示为本发明一实施例中的实现集中式定时任务管理方法的技术工具示意图。
图2显示为本发明一实施例中的实现集中式定时任务管理方法的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
鉴于现有技术中,定时任务一旦被修改或删除就无法直接还原、当其调用的文件数量较多时就难以管理、以及与调用脚本分开存储无法良好地管理二者之间的对应关系等缺点,本发明提供一种管理简单,而且具有版本控制管理功能的定时任务管理方法,从而解决现有技术中管理分散、配置复杂等问题。
如图1所示,本实施例采用gitlab代码管理工具,配合容器化Docker技术和linux内核工具crontab实现集中式管理定时任务。需要说明的是,本领域技术人员还可以采用其他代码管理工具、其他容器化技术和基于其他操作系统内核的定时任务来实现本发明提出的集中式定时任务管理方法,并不以本实施例涉及的gitlab、Docker和crontab为限。
如图2所示,本发明的定时任务管理方法包括如下步骤:
步骤S201:在gitlab上创建一个项目,并命名,如:timed-tasks。进一步地,在该timed-tasks项目里面创建crontab定时任务文件和定时任务需要调用的脚本文件。
步骤S202:给timed-tasks项目容器化,包括:编写dockerfile文件构建容器镜像,把脚本文件所在的文件夹都拷入容器镜像,进一步地,指定文件读写权限和赋予脚本可执行权限。
步骤S203:安装配置gitlab插件gitlab CI。在timed-tasks项目中添加.gitlab-ci.yml文件,并在gitlab-ci.yml文件中添加两个持续集成步骤,包括:
1)生成容器镜像并上传到gitlab;
2)指定一个tag名(容器镜像可以发布为不同的版本,这种机制称之为标签Tag)为XXX的gitlab-runner来启动容器,启动前先dock pull最新的容器镜像,并把容器内的crontab定时任务和脚本挂载到linux机器。挂载的时候是宿主机的内容覆盖到容器的内容,所以需要在容器启动时把容器内的脚本复制到挂载出去的路径下,这样就会同步到linux宿主机上。从而,在timed-tasks上的crontab定时任务文件就覆盖宿主机上的crontab文件,就做到了即改即生效。
步骤S204:在需要跑定时任务的linux机器上用容器启动gitlab-runner,需要说明的是,该gitlab-runner要预先注册到timed-tasks项目,tag名为XXX。
如果需要在多个linux机器上运行多个定时任务,则在对应的机器上启动gitlab-runner,注册并打上一个唯一的tag。然后,在timed-tasks项目的.gitlab-ci.yml文件中步骤S203指定到这个唯一tag。
综上所述,本发明的集中式定时任务管理方法,通过在代码管理工具中新建项目,并在所述项目中建立定时任务文件和定时任务需要调用的脚本文件,构建所述项目的容器镜像,并把所述脚本文件所在的文件夹都拷入所述容器镜像,将所述容器镜像上传到持续集成系统,随后,将所述容器镜像内的定时任务文件和脚本文件挂载到宿主机上,并指定用于启动容器的运行器,在所述宿主机上启动所述运行器,不仅具有版本控制管理的功能,还有效解决了定时任务管理分散、配置复杂等问题,有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (8)

1.一种定时任务管理方法,其特征在于,包括:
在代码管理工具中新建项目,并在所述项目中建立定时任务文件和定时任务需要调用的脚本文件;
构建所述项目的容器镜像,并把所述脚本文件所在的文件夹都拷入所述容器镜像;
将所述容器镜像上传到持续集成系统,随后,将所述容器镜像内的定时任务文件和脚本文件挂载到宿主机上,并指定用于启动容器的运行器;
在所述宿主机上启动所述运行器。
2.根据权利要求1所述的定时任务管理方法,其特征在于,挂载时是令所述宿主机的内容覆盖所述容器的内容,其实现方式为:在所述容器启动时,把所述容器内的脚本文件复制到挂载出去的路径下以同步到所述宿主机上。
3.根据权利要求1所述的定时任务管理方法,其特征在于,在把所述脚本文件所在的文件夹都拷入所述容器镜像之后,还包括:指定所述脚本文件的文件读写权限,并赋予所述脚本文件可执行权限。
4.根据权利要求1所述的定时任务管理方法,其特征在于,若在多个宿主机上运行多个定时任务,则在对应的宿主机上启动对应的运行器。
5.根据权利要求1所述的定时任务管理方法,其特征在于,所述运行器预先在所述持续集成系统中完成注册,其标签名不变。
6.根据权利要求1所述的定时任务管理方法,其特征在于,所述运行器预先在所述项目中完成注册,其标签名不变。
7.根据权利要求1-6中任一所述的定时任务管理方法,其特征在于,所述代码管理工具为gitlab,所述定时任务文件为crontab定时任务文件,所述容器镜像是由docker构建的,所述持续集成系统为gitlab CI,所述运行器为gitlab-runner,所述宿主机为Linux宿主机。
8.根据权利要求7所述的定时任务管理方法,其特征在于,所述gitLab CI通过.gitlab-ci.yml文件进行持续集成的配置。
CN201710320211.7A 2017-05-09 2017-05-09 一种集中式的定时任务管理方法 Pending CN108874498A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710320211.7A CN108874498A (zh) 2017-05-09 2017-05-09 一种集中式的定时任务管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710320211.7A CN108874498A (zh) 2017-05-09 2017-05-09 一种集中式的定时任务管理方法

Publications (1)

Publication Number Publication Date
CN108874498A true CN108874498A (zh) 2018-11-23

Family

ID=64287367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710320211.7A Pending CN108874498A (zh) 2017-05-09 2017-05-09 一种集中式的定时任务管理方法

Country Status (1)

Country Link
CN (1) CN108874498A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995473A (zh) * 2019-11-18 2020-04-10 腾讯科技(深圳)有限公司 一种业务节点的控制方法及相关设备
CN111144839A (zh) * 2019-12-17 2020-05-12 深圳市优必选科技股份有限公司 一种项目构建方法、持续集成系统及终端设备
CN112217899A (zh) * 2020-10-19 2021-01-12 政采云有限公司 容器故障排查系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679390A (zh) * 2013-12-26 2014-03-26 北京奇虎科技有限公司 配置系统的后台测试方法及装置
US9235322B1 (en) * 2013-03-09 2016-01-12 Ca, Inc. Systems, methods and computer program products for a cloud application editor
CN105468362A (zh) * 2015-11-17 2016-04-06 广州杰赛科技股份有限公司 应用部署方法和云计算系统
CN105760167A (zh) * 2016-02-23 2016-07-13 浪潮软件集团有限公司 一种基于Docker的持续集成方法
CN106528200A (zh) * 2016-10-08 2017-03-22 广州视睿电子科技有限公司 一种基于docker compose的持续集成方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235322B1 (en) * 2013-03-09 2016-01-12 Ca, Inc. Systems, methods and computer program products for a cloud application editor
CN103679390A (zh) * 2013-12-26 2014-03-26 北京奇虎科技有限公司 配置系统的后台测试方法及装置
CN105468362A (zh) * 2015-11-17 2016-04-06 广州杰赛科技股份有限公司 应用部署方法和云计算系统
CN105760167A (zh) * 2016-02-23 2016-07-13 浪潮软件集团有限公司 一种基于Docker的持续集成方法
CN106528200A (zh) * 2016-10-08 2017-03-22 广州视睿电子科技有限公司 一种基于docker compose的持续集成方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995473A (zh) * 2019-11-18 2020-04-10 腾讯科技(深圳)有限公司 一种业务节点的控制方法及相关设备
CN110995473B (zh) * 2019-11-18 2021-08-24 腾讯科技(深圳)有限公司 一种业务节点的控制方法及相关设备
CN111144839A (zh) * 2019-12-17 2020-05-12 深圳市优必选科技股份有限公司 一种项目构建方法、持续集成系统及终端设备
CN111144839B (zh) * 2019-12-17 2024-02-02 深圳市优必选科技股份有限公司 一种项目构建方法、持续集成系统及终端设备
CN112217899A (zh) * 2020-10-19 2021-01-12 政采云有限公司 容器故障排查系统及方法

Similar Documents

Publication Publication Date Title
JP6634188B1 (ja) ユーザインタフェース拡張器
CN107733985B (zh) 一种云计算系统功能组件部署方法及装置
CN104156465B (zh) 一种实时网页同步及后台分布式数据存储系统
CN102789382B (zh) 用于表单生成和运行的系统及方法
US20160330208A1 (en) Method and apparatus for implementing document sharing between user groups
CN108874498A (zh) 一种集中式的定时任务管理方法
CN106681956A (zh) 一种大规模计算机集群的操作方法及装置
CN104536802A (zh) 一种实现应用调用的方法及虚拟机
CN104935618B (zh) 一种集群部署方法
CN107870772B (zh) 跨环境的应用部署方法、平台、系统及可读存储介质
CN106681718A (zh) 一种基于工具集的桌面端插件框架及实现方法
CN107704309A (zh) 基于Docker构建标准化运行环境的方法及系统
CN103077034B (zh) 混合虚拟化平台java应用迁移方法与系统
JP2015180991A (ja) 画像形成装置、画像形成装置の制御方法およびプログラム
CN110168496A (zh) 用于应用呈现的方法和系统
CN109086051A (zh) 应用组件部署方法、装置及计算机存储介质
CN103577554B (zh) 触发Android设备多媒体数据库扫描的方法及装置
CN109800226A (zh) 一种数据治理中的任务管理方法及装置
CN103092660A (zh) 一种嵌入式设备出厂配置与生产配置的安全快速切换方法
CN104318091A (zh) 一种基于虚拟化计算机系统的小卫星地面测试方法
Hanjura Heroku cloud application development
CN110134489A (zh) 应用迁移方法及装置、系统、存储介质、应用上云工具
US8219723B2 (en) Systems and methods for using a shared buffer construct in performance of concurrent data-driven tasks
CN105592114A (zh) 一种在虚拟桌面环境下的应用软件发布方法
CN108804202A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181123