CN106951319A - 增加Linux定时任务的系统和方法 - Google Patents
增加Linux定时任务的系统和方法 Download PDFInfo
- Publication number
- CN106951319A CN106951319A CN201710287599.5A CN201710287599A CN106951319A CN 106951319 A CN106951319 A CN 106951319A CN 201710287599 A CN201710287599 A CN 201710287599A CN 106951319 A CN106951319 A CN 106951319A
- Authority
- CN
- China
- Prior art keywords
- linux
- timed tasks
- increase
- middle key
- record
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种增加Linux定时任务的系统和方法,其方法包括:Linux定时任务通过增加每隔一段预设时间循环访问中间键的Cron条目以循环访问中间键;中间键调用数据库的每条记录并判断相应的命令是否在此时间点运行;根据每个Linux定时任务中的条件确定相应每条指令的执行时间。优点在于:通过增加中间键、数据库和每隔一段预设时间循环访问中间键的Cron条目以简化增加定时任务的繁琐过程。
Description
技术领域
本发明属于计算机系统领域,尤其涉及一种增加Linux定时任务的系统和方法。
背景技术
Cron,计划任务,是任务在约定的时间执行已经计划好的工作。例如,可以在配置文件中约定每天早上4点将http的服务器重新启动,每天晚上10点钟给某个邮箱发送一封邮件,都是计划任务。
在Linux系统中,计划任务易半友从容承担,cron可以根据配置文件约定的时间来执行特定任务。将cron设置为开机自动开启。Cron启动后,它会读取它的所有配置文件,如全局配置文件/etc/crontab,以及每个用户的计划任务配置文件,然后cron会根据命令和执行时间来按时调用工作任务。
Cron可以在无需人工干预的情况下作业,但是缺点在于不提供任何形式的API,只能通过应用的配置文件来配置Cron任务,局限于应用内部使用,缺少了灵活性。而且在目前Linux定时任务中,开发者需要为每一个定时任务编写一个Cron条目,这是开发者很感到烦恼的事情。而且开发者必须登录到Linux服务器来添加这些Cron条目,增加过程十分繁琐。
为了解决上述技术问题,人们进行了长期的探索,中国专利公开了一种分布式定时任务控制装置及方法[申请号:201310102698.3],包括接收模块,用于接收定时任务的指令;数据库模块,用于保存cron记录,其中,每个所述cron记录具有对应的当前状态信息;多个调度模块,用于分别根据调度时间表对所述的数据库模块中的cron记录进行调度,当cron记录满足所述的调度时间表之后,根据所述cron记录对应的额当前状态信息将所述cron记录放置到执行队列中;以及执行模块,用于执行所述执行队列中的cron记录。
上述技术方案解决了现有技术的Cron任务局限于应用内部使用,缺少了灵活等问题,但是其仍然存在需要为每一个定时任务编写一个Cron条目的繁琐过程,增加定时任务的方法还有待进一步提高以简化增加过程。
发明内容
本发明的目的是针对上述问题,提供一种简化过程的增加Linux定时任务的系统;
本发明的另一目的是针对上述问题,提供一种基于增加Linux定时任务的系统的方法;
为达到上述目的,本发明采用了下列技术方案:
本发明的增加Linux定时任务的系统,包括Linux,所述的Linux内安装有数据库和中间键,所述的数据库中记录有每条命令的运行标示,所述的中间键用于调用数据库的每条记录并判断这条记录是否在此时间点运行,所述的Linux还包括有至少一个Linux定时任务,且所述的每个Linux定时任务包括用于每隔一段预设时间循环访问中间键的Cron条目。
通过上述技术方案,使增加定时任务的的编写任务过程变得简单易用
在上述的增加Linux定时任务的系统中,所述的运行标示包括命令标识、命令的运行时间标识、命令的生效状态标识以及该命令的最后一次运行时间标识。
在上述的增加Linux定时任务的系统中,所述的中间键由PHP语言编写而成。
在上述的增加Linux定时任务的系统中,所述的每个Linux定时任务包括用于确定什么时候执行相应的每条指令的条件模块。
一种基于所述的增加Linux定时任务的系统的方法,其包括:
Linux定时任务每隔一段预设时间循环访问中间键;
中间键调用数据库的每条记录并判断相应的命令是否在此时间点运行;
根据每个Linux定时任务中的条件确定相应每条指令的执行时间。
在上述的增加Linux定时任务的方法中,Linux定时任务通过增加每隔一段预设时间循环访问中间键的Cron条目以循环访问中间键。
在上述的增加Linux定时任务的方法中,所述的预设时间为一分钟。
在上述的增加Linux定时任务的方法中,所述的中间键在调用数据库每条记录的同时读取生效的每条记录以判断相应的命令是否在这此时间点运行。
在上述的增加Linux定时任务的方法中,所述的中间键通过读取数据库中生效的每条记录然后循环根据每条生效命令的运行时间标识来判断相应的生效命令是否在此时间点运行。
在上述的增加Linux定时任务的方法中,每条生效的记录对应的命令根据相应的Linux定时任务中的条件确定是否在此时间点运行。
本发明增加Linux定时任务的系统和方法相较于现有技术具有以下优点:简化增加任务时的编写过程,减轻开发者的负担。
附图说明
图1是本发明实施例一的增加Linux定时任务的系统框图;
图2是本发明实施例二增加Linux定时任务的方法流程图。
图中,Linux定时任务1;Cron条目11;Linux2;数据库21;中间键22。
具体实施方式
本发明可用于在Linux增加定时任务,解决了现有技术开发者需要为每一个定时任务编写一个Cron条目,而且开发者必须登录到Linux服务器来添加这些Cron条目,操作过程繁琐等问题。
以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
实施例一
如图1所示,本发明的增加Linux定时任务的系统,包括Linux,所述的Linux内安装有数据库21和中间键22,所述的数据库21中记录有每条命令的运行标示。
进一步地,所述的中间键22用于调用数据库21的每条记录,并通过数据库中运行标示的字段判断这条记录是否在此时间点运行,所述的Linux1还包括有至少一个Linux定时任务2,且所述的每个Linux定时任务1包括用于每隔一段预设时间循环访问中间键22的Cron条目11,由于该Cron条目11,Linux定时任务每个一段预设时间都会访问一次中间键22。
其中,运行标示包括命令标识、命令的运行时间标识、命令的生效状态标识以及该命令的最后一次运行时间标识;具体表现为如下字段:
id | flag | command | action | last_run_time |
1 | everyMinute | /var/Www/index.php | 1 | 2016-12-26 18:42 |
flag字段表示什么时候运行这条命令,flag里面的值可以自己定义;
如表格中的flag字段下为everyMinute,表示每分钟运行这条命令,当然也可以是其他时间,如everyDay,则表示每天运行这条命令;也可以是具体的时间,例如2016-1-112:00,则表示在这个时间点运行这条命令;
command字段:表示运行哪一条命令;
如表格中的command字段下为/var/www/index.php,则表示需要运行/var/www/index.php代表的命令;
action字段:表示此条是否处于生效状态;
如表格中的action字段下的1,表示此条记录处于生效状态;
此时,当表示中action字段下为0时,则表示此条记录处于未生效状态。
当然,此字段不排除采用其他形式记录。
记录形式可以为更详细的状态信息,包括活跃状态、结束状态、删除状态、暂停状态和配额超限状态中的一种或多种,例如,其中活跃状态可表示为111,结束状态可表示为011,删除状态可表示为100,暂停状态可表示为010,配额超限状态可表示为001。
last_run_time字段:表示最后一次运行时间;
如表格中的last_run_time字段下的2016-12-2618:42,则表示该条命令的上次运行时间为2016年12月26日的下午6点42分,若该条命令的运行周期为24小时,则该命令的下次运行时间为2016年12月27日下午6点42分。
本实施例中,预设时间为一分钟,当然也可以是其他时间,每次Linux定时任务1访问中间键22的时候,中间键22便会向数据库21读取生效的每一条记录。
进一步地,记录的生效与否通过下面字段的action字段得知,在读取到中间键22生效的每一条记录后循环根据下列字段的flag字段来判断每一个相应的额记录是否在此次执行。
下面采用具体的例子来对本实施例进行更具体的说明:
首先,使用者在Linux里面增加一个Linux定时任务1,当然该Linux定时任务1包含每隔一段预设时间循环访问中间键22的Cron条目11,此Cron条目11不具有实质的计划任务,任务指令被保存于Linux定时任务1中,而命令被保存在数据库的每一条记录中,Cron只负责使Linux定时任务1循环访问中间键22;
然后中间键22在被Linux定时任务1访问的同时读取数据库21中生效的每一条记录;
然后根据Linux定时任务1中的条件来确定相应的Linux定时任务1指令的执行时间以确定是否在此次运行相应的命令。
进一步地,所述的每个Linux定时任务1包括用于确定什么时候执行相应的每条指令的条件模块。
进一步地,条件模块所包含的条件包括Linux定时任务1所针对的Linux中的具体单元模块的启动条件,任务执行时间具体单元模块的操作允许等条件,
当所有的外部条件和内部条件均满足该Linux定时任务1的指令执行要求,且数据库21中的flag字段也表示命令在此次执行,则执行Linux定时任务1指定的任务。
优选地,所述的中间键22由PHP语言编写而成,当然,不排除其他语言来完成中间键22的编写,此处不进行限制,只要满足编写要求即可。
本实施方式通过在Linux2中安装中间键22和数据库21:
数据库21中插入每条命令的运行时间标示;
中间键22调用数据库21的每条记录并判断这条记录是否在这此时间点运行;
同时通过在Linux定时任务1中添加一条每分钟循环访问中间键22的Cron条目11来循环访问数据库21中的命令是否在此次运行,让编写过程化繁为简,减轻编写者的负担。
实施例二
如图2所示,本实施例是一种基于所述的增加Linux定时任务1的系统的增加Linux定时任务1的方法,包括:
开发者为每个Linux定时任务增加一条用于每隔一段时间循环访问中间键的Cron条目;
Linux定时任务1每隔一段预设时间循环访问中间键22;具体地,具体地,
Linux定时任务1通过开发者增加的每隔一段预设时间循环访问中间键22的Cron条目11以实现每隔一段预设时间循环访问中间键22。
进一步地,所述的预设时间为一分钟。
当然此预设时间也可以为50秒、30秒,20秒、10秒或者更短;
或者,此预设时间也可以为70秒、80秒、90秒,甚至更长时间。
本实施例中,开发人员只需要在Linux定时任务1中增加每分钟循环访问中间键22的Cron条目11即可,不需要专门为每个Linux定时任务编写一个Cron条目,简化了Linux定时任务的增加过程。
具体地,中间键22调用数据库21的每条记录并判断相应的命令是否在此时间点运行,每条记录包括存储于数据库中的运行标示,系统通过运行标示上的字段判断这条记录是否在此时间点运行;
进一步地,系统根据每个Linux定时任务1中的条件确定相应每条指令的执行时间。
其中,Linux定时任务1中的条件包括Linux定时任务1所针对的Linux2中的具体单元模块的启动条件,任务执行时间和对具体单元模块的操作允许等条件,当所有的外部条件和内部条件均满足该Linux定时任务1的指令执行要求,且数据库21中的flag字段也表示命令在此次执行,则执行Linux定时任务1指定的任务。
进一步地,所述的中间键22在调用数据库21每条记录的同时读取生效的每条记录以判断相应的命令是否在这此时间点运行。
再进一步地,所述的中间键22通过读取数据库21中生效的每条记录然后循环根据每条生效命令的运行时间标识来判断相应的生效命令是否在此时间点运行。
更进一步地,每条生效的记录对应的命令根据相应的Linux定时任务1中的条件确定是否在此时间点运行。
本实施例的原理如下:通过在Linux系统内安装一个中间键和一个数据库,数据库中插入每条命令的运行时间标示;而中间键用来调用数据库的每条记录并判断这条记录是否在这此时间点运行,在增加Linux定时任务的过程中,Linux定时任务中只需要增加一条每分钟循环访问中间键的Cron条目,然后在循环访问的过程中再由中间键向数据库中读取要执行的任务;最后根据每个定时任务中的条件来确定什么时候来执行相应的每条指令。
采用上述技术方案,使增加Linux定时任务的编写任务过程变得简单易用,大大提高了Linux定时任务的增加过程,提高编写效率,具有广泛的应用前景。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了Linux定时任务1;Cron条目11;Linux2;数据库21;中间键22等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
Claims (10)
1.一种增加Linux定时任务的系统,包括Linux(2),其特征在于,所述的Linux(2)内安装有数据库(21)和中间键(22),所述的数据库(21)中记录有每条命令的运行标示,所述的中间键(22)用于调用数据库(21)的每条记录并判断这条记录是否在此时间点运行,所述的Linux(2)还包括有至少一个Linux定时任务(1),且所述的每个Linux定时任务(1)包括用于每隔一段预设时间循环访问中间键(22)的Cron条目(11)。
2.根据权利要求1所述的增加Linux定时任务的系统,其特征在于,所述的运行标示包括命令标识、命令的运行时间标识、命令的生效状态标识以及该命令的最后一次运行时间标识。
3.根据权利要求1所述的增加Linux定时任务(1)的系统,其特征在于,所述的中间键(22)由PHP语言编写而成。
4.根据权利要求1所述的增加Linux定时任务的系统,其特征在于,所述的每个Linux定时任务(1)包括用于确定什么时候执行相应的每条指令的条件模块。
5.一种基于权利要求1-4任意一项所述的增加Linux定时任务的系统的方法,其特征在于,包括:
Linux定时任务(1)每隔一段预设时间循环访问中间键(22);
中间键(22)调用数据库(21)的每条记录并判断相应的命令是否在此时间点运行;
根据每个Linux定时任务(1)中的条件确定相应每条指令的执行时间。
6.根据权利要求5所述的增加Linux定时任务的方法,其特征在于,Linux定时任务(1)通过增加每隔一段预设时间循环访问中间键(22)的Cron条目(11)以循环访问中间键(22)。
7.根据权利要求6所述的增加Linux定时任务的方法,其特征在于,所述的预设时间为一分钟。
8.根据权利要求5所述的增加Linux定时任务的方法,其特征在于,所述的中间键(22)在调用数据库(21)每条记录的同时读取生效的每条记录以判断相应的命令是否在这此时间点运行。
9.根据权利要求8所述的增加Linux定时任务的方法,其特征在于,所述的中间键(22)通过读取数据库(21)中生效的每条记录然后循环根据每条生效命令的运行时间标识来判断相应的生效命令是否在此时间点运行。
10.根据权利要求9所述的增加Linux定时任务的方法,其特征在于,每条生效的记录对应的命令根据相应的Linux定时任务(1)中的条件确定是否在此时间点运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287599.5A CN106951319A (zh) | 2017-04-27 | 2017-04-27 | 增加Linux定时任务的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287599.5A CN106951319A (zh) | 2017-04-27 | 2017-04-27 | 增加Linux定时任务的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951319A true CN106951319A (zh) | 2017-07-14 |
Family
ID=59476813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710287599.5A Pending CN106951319A (zh) | 2017-04-27 | 2017-04-27 | 增加Linux定时任务的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951319A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140528A (zh) * | 2007-08-31 | 2008-03-12 | 中兴通讯股份有限公司 | 一种实现集群内定时任务负载均衡的方法、装置及系统 |
CN102724321A (zh) * | 2012-06-21 | 2012-10-10 | 中国科学院高能物理研究所 | 一种用于高能物理试验大批量数据的传输系统及传输方法 |
CN103197969A (zh) * | 2013-03-27 | 2013-07-10 | 百度在线网络技术(北京)有限公司 | 一种分布式定时任务控制装置及方法 |
CN103645909A (zh) * | 2013-12-30 | 2014-03-19 | 中国烟草总公司湖南省公司 | 定时任务的处理方法及装置 |
CN103679392A (zh) * | 2013-12-26 | 2014-03-26 | 拉卡拉支付有限公司 | 一种任务调度处理方法及系统 |
CN105468528A (zh) * | 2015-12-09 | 2016-04-06 | 浪潮电子信息产业股份有限公司 | 一种基于Linux系统的脚本的自动化执行方法 |
-
2017
- 2017-04-27 CN CN201710287599.5A patent/CN106951319A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140528A (zh) * | 2007-08-31 | 2008-03-12 | 中兴通讯股份有限公司 | 一种实现集群内定时任务负载均衡的方法、装置及系统 |
CN102724321A (zh) * | 2012-06-21 | 2012-10-10 | 中国科学院高能物理研究所 | 一种用于高能物理试验大批量数据的传输系统及传输方法 |
CN103197969A (zh) * | 2013-03-27 | 2013-07-10 | 百度在线网络技术(北京)有限公司 | 一种分布式定时任务控制装置及方法 |
CN103679392A (zh) * | 2013-12-26 | 2014-03-26 | 拉卡拉支付有限公司 | 一种任务调度处理方法及系统 |
CN103645909A (zh) * | 2013-12-30 | 2014-03-19 | 中国烟草总公司湖南省公司 | 定时任务的处理方法及装置 |
CN105468528A (zh) * | 2015-12-09 | 2016-04-06 | 浪潮电子信息产业股份有限公司 | 一种基于Linux系统的脚本的自动化执行方法 |
Non-Patent Citations (1)
Title |
---|
于京,龚永坚,鲁晓成: "《Linux操作系统》", 31 January 2010 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Darouei et al. | Work from home today for a better tomorrow! How working from home influences work‐family conflict and employees' start of the next workday | |
Czarniawska | Why I think shadowing is the best field technique in management and organization studies | |
Tracey | Levels of interpersonal complementarity: A simplex representation | |
Hartmann et al. | Organizational commitment: A multi method scale analysis and test of effects | |
Youli et al. | The effects of transformational leadership on employee's pro-social rule breaking | |
EP3190528A3 (en) | System and methods for creating and managing geospatial network model in a client environment | |
Harbers et al. | Embedding stakeholder values in the requirements engineering process | |
Pryss et al. | Machine learning findings on geospatial data of users from the trackyourstress mhealth crowdsensing platform | |
Fernandes et al. | A human-in-the-loop cyber-physical approach for students performance assessment | |
CN106951319A (zh) | 增加Linux定时任务的系统和方法 | |
CN105897802A (zh) | 一种基于社会化网络的备忘提醒方法 | |
KR20140046196A (ko) | 적응적 학습가이드 제공방법 | |
CN111079195A (zh) | 一种基于区块链的就诊预约存证方法及设备、介质 | |
CN104504622A (zh) | 服务时间储蓄系统和方法 | |
Chen et al. | Controlling a service robot in a smart home with behavior planning and learning | |
CN114595045A (zh) | 任务调度方法、装置、设备和存储介质 | |
JP5630359B2 (ja) | スケジュール作成プログラム、スケジュール作成装置およびスケジュール作成方法 | |
Dimoia | Revisiting Korean Family Planning (FP): Population and the pre-1962 Context. | |
Klockars | Ageing in European psychoanalytic societies: Psychoanalytic practice: Terminable or interminable | |
Klein et al. | Temporal vagueness, coordination and communication | |
Kato et al. | Models for Designing Long‐Term Care Service Plans and Care Programs for Older People | |
Ng | Designing Visualizations of Self-Tracked Data From Bounded Situational Contexts | |
Abd Rahmin | Online scheduling in hospital theatre scheduling | |
Rotilă | The paradox of extended mind; from extended mind to extended consciousness | |
US20210406315A1 (en) | System and method for digital enhancement of hippocampal replay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 201616 Shanghai city Songjiang District Sixian Road No. 3666 Applicant after: Shanghai Feixun Data Communication Technology Co., Ltd. Address before: 201616 Shanghai City, Songjiang District Road No. 3666 Applicant before: Shanghai Feixun Data Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170714 |
|
RJ01 | Rejection of invention patent application after publication |