CN113282580A - 用于执行定时任务的方法、存储介质及服务器 - Google Patents
用于执行定时任务的方法、存储介质及服务器 Download PDFInfo
- Publication number
- CN113282580A CN113282580A CN202110468404.3A CN202110468404A CN113282580A CN 113282580 A CN113282580 A CN 113282580A CN 202110468404 A CN202110468404 A CN 202110468404A CN 113282580 A CN113282580 A CN 113282580A
- Authority
- CN
- China
- Prior art keywords
- cache database
- redis cache
- timing task
- value
- data lock
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013503 de-identification Methods 0.000 claims abstract description 36
- 238000012217 deletion Methods 0.000 claims abstract description 22
- 230000037430 deletion Effects 0.000 claims abstract description 22
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机软件技术领域,公开一种用于执行定时任务的方法,包括:服务器执行定时任务时访问redis缓存数据库,判断当前是否存在定时任务对应的redis分布式数据锁的键值,如果是,则停止执行定时任务;否则,在redis缓存数据库中写入键值,并继续执行定时任务;获取redis缓存数据库发送的数据锁的解除标识值;当完成定时任务后,发送携带解除标识值的数据锁的删除请求,以删除redis缓存数据库中的数据锁的键值。通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器均在redis缓存数据库中进行重复数据操作,避免定时任务在redis缓存数据库中的重复执行。
Description
技术领域
本申请涉及计算机软件技术领域,例如涉及一种用于执行定时任务的方法、存储介质和服务器。
背景技术
现在随着浏览器和服务器架构模式(Browser/Server,B/S)的应用广泛,越来越多的人使用起了互联网。在现实需求中有很多业务场景需要设置为固定时间点执行,即在服务器中设置定时任务。随着用户量的不断累积,一个节点的服务器远远满足不了这么多用户量的访问。所以开发人员纷纷对服务器进行水平扩展,部署多个节点的服务器。多个节点的服务器可能都会访问redis缓存数据库请求执行某一定时任务,但是定时任务仅需在redis缓存数据库中执行一次即可,如果多个节点的服务器均在数据库中执行同一定时任务,而每次请求redis缓存数据库都允许服务器进行数据的相应操作的话,会造成定时任务对redis缓存数据库中的数据的重复执行。然而,由于多个节点之间业务逻辑都是独立的,这就造成定时任务很容易在redis缓存数据库中重复被执行的现象。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于执行定时任务的方法、存储介质和服务器,以解决定时任务重复执行的技术问题。
本公开实施例提供一种用于执行定时任务的方法,包括:
服务器执行定时任务时访问redis缓存数据库,判断当前是否存在所述定时任务对应的redis分布式数据锁的键值,如果是,则停止执行所述定时任务;否则,在所述redis缓存数据库中写入所述键值,并继续执行所述定时任务;
获取所述redis缓存数据库发送的所述数据锁的解除标识值;
当完成所述定时任务后,发送携带所述解除标识值的所述数据锁的删除请求,以删除所述redis缓存数据库中的所述数据锁的键值。
在一些实施方式中,所述数据锁的键值包括所述任务的标识,所述redis缓存数据库对应所述数据锁的键值保存所述数据锁的解除标识值。
在一些实施方式中,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
在一些实施方式中,所述在第一设定时长为:
第一时长与第二时长中的较大值;
所述第一时长为所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的时长;
所述第二时长为所述定时任务从访问所述redis缓存数据库到执行完成所需的时长。
在一些实施方式中,所述第一设定时长小于所述定时任务再次执行时间与所述键值的生成时间的差。
本公开实施例提供一种用于创建数据锁的方法,所述方法包括:
redis缓存数据库接收服务器执行定时任务时发送的访问请求;
redis缓存数据库确定所述服务器写入包括所述定时任务的标识的数据锁的键值后,生成所述数据锁的解除标识值,将所述解除标识值与所述键值关联保存;
redis缓存数据库将所述解除标识值发送给所述服务器;
redis缓存数据库在接收携带所述解除标识值的数据锁删除请求后,删除之前保存的所述数据锁的键值及所述解除标识值;
redis缓存数据库在所述解除标识值中存储的时间点未接收到所述数据锁删除请求,自动删除之前保存的所述数据锁的键值及所述解除标识值。
在一些实施方式中,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
在一些实施方式中,所述在第一设定时长为通过如下方式确定:
确定所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的第一时长;
确定所述定时任务从访问所述redis缓存数据库到执行完成所需的第二时长;
确定所述第一时长与第二时长中的较大值为所述第一设定时长。
本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行本公开实施例提供的方法。
本公开实施例提供一种服务器,包括处理器及存储器,所述存储器存储有计算机指令,所述处理器被配置为基于所述计算机指令执行本公开实施例提供的方法。
本公开实施例提供的用于执行定时任务的方法、存储介质和服务器,可以实现以下技术效果:
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于执行定时任务的方法的示意图;
图2是本公开实施例提供的一个用于创建数据锁的方法的示意图;
图3是本公开实施例提供的另一个用于创建数据锁的方法的示意图;
图4是本公开实施例提供的另一个用于执行定时任务的方法的示意图;
图5是本公开实施例提供的一个用于执行定时任务的装置的示意图;
图6是本公开实施例提供的一个用于创建数据锁的装置的示意图;
图7是本公开实施例提供的一个服务器的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
本公开实施例提供了一种用于数据库的数据锁调用方法、存储介质和服务器,以解决定时任务重复执行的技术问题。
如图1所示,本公开实施例提供一种用于执行定时任务的方法,包括:
S101、服务器执行定时任务时访问redis缓存数据库,判断当前是否存在所述定时任务对应的redis分布式数据锁的键值,如果是,则停止执行所述定时任务;
S102、否则,在所述redis缓存数据库中写入所述键值,并继续执行所述定时任务;
S103、获取所述redis缓存数据库发送的所述数据锁的解除标识值;
S104、当完成所述定时任务后,发送携带所述解除标识值的所述数据锁的删除请求,以删除所述redis缓存数据库中的所述数据锁的键值。
其中,数据锁是以键值(key)与解除标识值(value)关联存储的形式保存在redis缓存数据库中的。其中,键值中包括定时任务的标识,如果服务器在执行定时任务时,访问redis缓存数据库后,发现存在包括要执行的定时任务的标识的键值,则判断已经有其他服务器因为该定时任务访问过redis缓存数据库。则服务器可以停止执行当前定时任务,不再为执行当前定时任务在redis缓存数据库中进行增删改查等操作。如果服务器在执行定时任务时,访问redis缓存数据库后,没有发现存在包括要执行的定时任务的标识的键值,则可以认为没有其他服务器因为该定时任务访问过redis缓存数据库。则服务器可以继续执行当前定时任务,在redis缓存数据库中进行相应的操作,并在redis缓存数据库中写入包括该定时任务标识的键值。redis缓存数据库会生成解除标识值,将解除标识值与键值关联存储,就生成该定时任务对应的数据锁。
解除标识值中,包括该数据锁的解除时间。其中解除时间为所述键值的生成时间的时间戳及第一设定时长的和。redis缓存数据库将解除标识值发送服务器,在服务器执行完定时任务后,再将携带解除标识值的数据锁删除请求发送给redis缓存数据库,redis缓存数据库接收到删除请求后,会删除与解除标识值匹配的数据锁的键值及解除标识值,从而实现数据锁的删除。在另一种实施方式中,为避免服务器执行定时任务出现异常,不能及时发送数据锁删除请求给redis缓存库,可以由redis缓存库自动根据解除标识值中的解除时间,自动删除数据锁的键值及解除标识值。其中,解除时间可以设定为键值生成的时间戳,与第一设定时长的和。第一设定时长,可以是第一时长与第二时长中的较大值,所述第一时长为所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的时长,所述第二时长为所述定时任务从访问所述redis缓存数据库到执行完成所需的时长。
实际应用中,第一设定时长也可以设置稍大一点的值,避免某一些服务器发送访问指令有延迟,但第一设定时长的上限,是所述定时任务再次执行时间与所述键值的生成时间的差。从而避免影响下一次该定时任务的执行。
实际应用中,同一时间,各服务器的定时任务相同,不同时间点的定时任务不同,在一些实施方式中,也可以某几个时间点的定时任务相同,不申请不限定于此。
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。
在一些实施方式中,所述数据锁的键值包括所述任务的标识,所述redis缓存数据库对应所述数据锁的键值保存所述数据锁的解除标识值。
在一些实施方式中,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
在一些实施方式中,所述在第一设定时长为:
第一时长与第二时长中的较大值;
所述第一时长为所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的时长;
所述第二时长为所述定时任务从访问所述redis缓存数据库到执行完成所需的时长。
在一些实施方式中,所述第一设定时长小于所述定时任务再次执行时间与所述键值的生成时间的差。
如图2所示,本公开实施例提供一种用于创建数据锁的方法,所述方法包括:
S201、redis缓存数据库接收服务器执行定时任务时发送的访问请求;
S202、redis缓存数据库确定所述服务器写入包括所述定时任务的标识的数据锁的键值后,生成所述数据锁的解除标识值,将所述解除标识值与所述键值关联保存;
S203、redis缓存数据库将所述解除标识值发送给所述服务器;
S204、redis缓存数据库在接收携带所述解除标识值的数据锁删除请求后,删除之前保存的所述数据锁的键值及所述解除标识值;
S205、redis缓存数据库在所述解除标识值中存储的时间点未接收到所述数据锁删除请求,自动删除之前保存的所述数据锁的键值及所述解除标识值。
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。如果redis缓存数据库在解除标识值中存储的时间点未接收到所述数据锁删除请求,则redis缓存数据库自动删除之前保存的所述数据锁的键值及所述解除标识值。
在一些实施方式中,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
在一些实施方式中,如图3所示,所述在第一设定时长为通过如下方式确定:
S301、确定所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的第一时长;
S302、确定所述定时任务从访问所述redis缓存数据库到执行完成所需的第二时长;
S303、确定所述第一时长与第二时长中的较大值为所述第一设定时长。
本公开实施例提供的用于数据库的数据锁调用方法、存储介质和服务器,可以实现以下技术效果:
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。如图4所示,本公开实施例提供一种示例性的用于执行定时任务的方法,包括:
S401、服务器执行定时任务时访问redis缓存数据库;
S402、redis缓存数据库接收服务器执行定时任务时发送的访问请求;
S403、服务器判断当前是否存在所述定时任务对应的redis分布式数据锁的键值,如果是,则停止执行所述定时任务;
S404、否则,服务器在所述redis缓存数据库中写入所述键值,并继续执行所述定时任务;
S405、redis缓存数据库确定所述服务器写入包括所述定时任务的标识的数据锁的键值后,生成所述数据锁的解除标识值,将所述解除标识值与所述键值关联保存;
S406、redis缓存数据库将所述解除标识值发送给所述服务器;
S407、服务器获取所述redis缓存数据库发送的所述数据锁的解除标识值;
S408、服务器当完成所述定时任务后,发送携带所述解除标识值的所述数据锁的删除请求,以删除所述redis缓存数据库中的所述数据锁的键值。
S409、redis缓存数据库在接收携带所述解除标识值的数据锁删除请求后,删除之前保存的所述数据锁的键值及所述解除标识值;
S410、redis缓存数据库在所述解除标识值中存储的时间点未接收到所述数据锁删除请求,自动删除之前保存的所述数据锁的键值及所述解除标识值。
其中,第一设定时长为通过如下方式确定:
Redis缓存数据库确定所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的第一时长;
Redis缓存数据库确定所述定时任务从访问所述redis缓存数据库到执行完成所需的第二时长;
Redis缓存数据库确定所述第一时长与第二时长中的较大值为所述第一设定时长。其中,数据锁是以键值(key)与解除标识值(value)关联存储的形式保存在redis缓存数据库中的。其中,键值中包括定时任务的标识,如果服务器在执行定时任务时,访问redis缓存数据库后,发现存在包括要执行的定时任务的标识的键值,则判断已经有其他服务器因为该定时任务访问过redis缓存数据库。则服务器可以停止执行当前定时任务,不再为执行当前定时任务在redis缓存数据库中进行增删改查等操作。如果服务器在执行定时任务时,访问redis缓存数据库后,没有发现存在包括要执行的定时任务的标识的键值,则可以认为没有其他服务器因为该定时任务访问过redis缓存数据库。则服务器可以继续执行当前定时任务,在redis缓存数据库中进行相应的操作,并在redis缓存数据库中写入包括该定时任务标识的键值。redis缓存数据库会生成解除标识值,将解除标识值与键值关联存储,就生成该定时任务对应的数据锁。
解除标识值中,包括该数据锁的解除时间。其中解除时间为所述键值的生成时间的时间戳及第一设定时长的和。redis缓存数据库将解除标识值发送服务器,在服务器执行完定时任务后,再将携带解除标识值的数据锁删除请求发送给redis缓存数据库,redis缓存数据库接收到删除请求后,会删除与解除标识值匹配的数据锁的键值及解除标识值,从而实现数据锁的删除。在另一种实施方式中,为避免服务器执行定时任务出现异常,不能及时发送数据锁删除请求给redis缓存库,可以由redis缓存库自动根据解除标识值中的解除时间,自动删除数据锁的键值及解除标识值。其中,解除时间可以设定为键值生成的时间戳,与第一设定时长的和。第一设定时长,可以是第一时长与第二时长中的较大值,所述第一时长为所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的时长,所述第二时长为所述定时任务从访问所述redis缓存数据库到执行完成所需的时长。
实际应用中,第一设定时长也可以设置稍大一点的值,避免某一些服务器发送访问指令有延迟,但第一设定时长的上限,是所述定时任务再次执行时间与所述键值的生成时间的差。从而避免影响下一次该定时任务的执行。
实际应用中,同一时间,各服务器的定时任务相同,不同时间点的定时任务不同,在一些实施方式中,也可以某几个时间点的定时任务相同,不申请不限定于此。
如图5所示,本公开实施例提供一种用于执行定时任务的装置,包括:
访问单元501,用于执行定时任务时访问redis缓存数据库,判断当前是否存在所述定时任务对应的redis分布式数据锁的键值,如果是,则停止执行所述定时任务;
写入单元502,用于如果当前不存在所述定时任务对应的redis分布式数据锁的键值,则在所述redis缓存数据库中写入所述键值,并继续执行所述定时任务;
获取单元503,用于获取所述redis缓存数据库发送的所述数据锁的解除标识值;
删除单元504,用于当完成所述定时任务后,发送携带所述解除标识值的所述数据锁的删除请求,以删除所述redis缓存数据库中的所述数据锁的键值。
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。
在一些实施方式中,所述数据锁的键值包括所述任务的标识,所述redis缓存数据库对应所述数据锁的键值保存所述数据锁的解除标识值。
在一些实施方式中,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
在一些实施方式中,所述在第一设定时长为:
第一时长与第二时长中的较大值;
所述第一时长为所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的时长;
所述第二时长为所述定时任务从访问所述redis缓存数据库到执行完成所需的时长。
在一些实施方式中,所述第一设定时长小于所述定时任务再次执行时间与所述键值的生成时间的差。
如图6所示,本公开实施例提供一种用于创建数据锁的装置,所述装置包括:
接收单元601,用于接收服务器执行定时任务时发送的访问请求;
保存单元602,用于确定所述服务器写入包括所述定时任务的标识的数据锁的键值后,生成所述数据锁的解除标识值,将所述解除标识值与所述键值关联保存;
发送单元603,用于将所述解除标识值发送给所述服务器;
被动删除单元604,用于在接收携带所述解除标识值的数据锁删除请求后,删除之前保存的所述数据锁的键值及所述解除标识值;
自动删除单元605,用于在所述解除标识值中存储的时间点未接收到所述数据锁删除请求,自动删除之前保存的所述数据锁的键值及所述解除标识值。
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。如果redis缓存数据库在解除标识值中存储的时间点未接收到所述数据锁删除请求,则redis缓存数据库自动删除之前保存的所述数据锁的键值及所述解除标识值。
在一些实施方式中,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
在一些实施方式中,所述在第一设定时长为通过如下方式确定:
确定所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的第一时长;
确定所述定时任务从访问所述redis缓存数据库到执行完成所需的第二时长;
确定所述第一时长与第二时长中的较大值为所述第一设定时长。
本公开实施例提供的用于数据库的数据锁调用方法、装置、存储介质和服务器,可以实现以下技术效果:
服务器在执行定时任务时,访问redis缓存数据库,如果redis缓存数据库中已经存在该定时任务对应的redis分布式数据锁的键值,则停止执行定时任务,如果redis缓存数据库中还不存在该定时任务对应的redis分布式数据锁的键值,则在数据库中写入该键值,并继续执行定时任务,并且获取键值的解除标识值,在完成定时任务后,发送携带解除标识值的所述数据锁的删除请求,以删除所述数据锁的键值。从而通过数据锁的形式,保证定时任务只在redis缓存数据库中进行一次数据操作,不会多个服务器因为同一定时任务均在redis缓存数据库中进行数据操作,避免定时任务在redis缓存数据库中的重复执行。
结合图7所示,本公开实施例提供一种服务器,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的方法。
此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例提供了一种产品(例如:计算机、手机等),包含上述的服务器。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于执行定时任务的方法,其特征在于,包括:
服务器执行定时任务时访问redis缓存数据库,判断当前是否存在所述定时任务对应的redis分布式数据锁的键值,如果是,则停止执行所述定时任务;否则,在所述redis缓存数据库中写入所述键值,并继续执行所述定时任务;
获取所述redis缓存数据库发送的所述数据锁的解除标识值;
当完成所述定时任务后,发送携带所述解除标识值的所述数据锁的删除请求,以删除所述redis缓存数据库中的所述数据锁的键值。
2.如权利要求1所述的方法,其特征在于,所述数据锁的键值包括所述任务的标识,所述redis缓存数据库对应所述数据锁的键值保存所述数据锁的解除标识值。
3.如权利要求1所述的方法,其特征在于,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
4.如权利要求3所述的方法,其特征在于,所述在第一设定时长为:
第一时长与第二时长中的较大值;
所述第一时长为所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的时长;
所述第二时长为所述定时任务从访问所述redis缓存数据库到执行完成所需的时长。
5.如权利要求3所述的方法,其特征在于,所述第一设定时长小于所述定时任务再次执行时间与所述键值的生成时间的差。
6.一种用于创建数据锁的方法,其特征在于,所述方法包括:
redis缓存数据库接收服务器执行定时任务时发送的访问请求;
redis缓存数据库确定所述服务器写入包括所述定时任务的标识的数据锁的键值后,生成所述数据锁的解除标识值,将所述解除标识值与所述键值关联保存;
redis缓存数据库将所述解除标识值发送给所述服务器;
redis缓存数据库在接收携带所述解除标识值的数据锁删除请求后,删除之前保存的所述数据锁的键值及所述解除标识值;
redis缓存数据库在所述解除标识值中存储的时间点未接收到所述数据锁删除请求,自动删除之前保存的所述数据锁的键值及所述解除标识值。
7.如权利要求6所述的方法,其特征在于,所述解除标识值中包括所述键值的生成时间的时间戳及第一设定时长的和。
8.如权利要求7所述的方法,其特征在于,所述在第一设定时长为通过如下方式确定:
确定所述redis缓存数据库获取到所有服务器为执行所述定时任务发送的redis缓存数据库访问指令所需的第一时长;
确定所述定时任务从访问所述redis缓存数据库到执行完成所需的第二时长;
确定所述第一时长与第二时长中的较大值为所述第一设定时长。
9.一种存储介质,其特征在于,所述存储介质存储有程序指令,所述程序指令被运行时,执行如权利要求1至8中任一项所述的方法。
10.一种服务器,其特征在于,包括处理器及存储器,所述存储器存储有程序指令,所述处理器被配置为基于所述程序指令执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110468404.3A CN113282580A (zh) | 2021-04-28 | 2021-04-28 | 用于执行定时任务的方法、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110468404.3A CN113282580A (zh) | 2021-04-28 | 2021-04-28 | 用于执行定时任务的方法、存储介质及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113282580A true CN113282580A (zh) | 2021-08-20 |
Family
ID=77277613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110468404.3A Pending CN113282580A (zh) | 2021-04-28 | 2021-04-28 | 用于执行定时任务的方法、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282580A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113727145A (zh) * | 2021-11-04 | 2021-11-30 | 飞狐信息技术(天津)有限公司 | 视频发布的方法及装置、电子设备、存储介质 |
CN113961330A (zh) * | 2021-11-04 | 2022-01-21 | 京东科技信息技术有限公司 | 分布式定时任务执行方法、装置、设备和计算机可读介质 |
CN114531442A (zh) * | 2022-02-17 | 2022-05-24 | 深圳壹账通智能科技有限公司 | 分布式定时任务管理方法、装置、设备及存储介质 |
CN116030398A (zh) * | 2023-03-31 | 2023-04-28 | 山东爱特云翔计算机有限公司 | 一种基于多路视频信号的任务分析方法、系统及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874552A (zh) * | 2018-06-28 | 2018-11-23 | 杭州云英网络科技有限公司 | 分布式锁执行方法、装置及系统、应用服务器和存储介质 |
CN109582466A (zh) * | 2017-09-29 | 2019-04-05 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
CN109857527A (zh) * | 2019-01-04 | 2019-06-07 | 四川虹美智能科技有限公司 | 一种分布式任务调度方法、系统、分布式装置和Redis数据库 |
CN110162384A (zh) * | 2019-04-19 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 基于Redis分布式锁的超时时间动态调整方法及系统 |
CN111026331A (zh) * | 2019-11-28 | 2020-04-17 | 深信服科技股份有限公司 | 请求响应方法、装置、设备及计算机可读存储介质 |
CN111190732A (zh) * | 2019-12-27 | 2020-05-22 | 成都欧珀通信科技有限公司 | 定时任务处理系统及方法、存储介质和电子设备 |
CN111367995A (zh) * | 2020-02-10 | 2020-07-03 | 北京百度网讯科技有限公司 | 基于服务锁的数据同步方法及装置、电子设备与存储介质 |
CN112463318A (zh) * | 2020-11-17 | 2021-03-09 | 深圳市优必选科技股份有限公司 | 一种定时任务处理方法、装置及系统 |
-
2021
- 2021-04-28 CN CN202110468404.3A patent/CN113282580A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582466A (zh) * | 2017-09-29 | 2019-04-05 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
CN108874552A (zh) * | 2018-06-28 | 2018-11-23 | 杭州云英网络科技有限公司 | 分布式锁执行方法、装置及系统、应用服务器和存储介质 |
CN109857527A (zh) * | 2019-01-04 | 2019-06-07 | 四川虹美智能科技有限公司 | 一种分布式任务调度方法、系统、分布式装置和Redis数据库 |
CN110162384A (zh) * | 2019-04-19 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 基于Redis分布式锁的超时时间动态调整方法及系统 |
CN111026331A (zh) * | 2019-11-28 | 2020-04-17 | 深信服科技股份有限公司 | 请求响应方法、装置、设备及计算机可读存储介质 |
CN111190732A (zh) * | 2019-12-27 | 2020-05-22 | 成都欧珀通信科技有限公司 | 定时任务处理系统及方法、存储介质和电子设备 |
CN111367995A (zh) * | 2020-02-10 | 2020-07-03 | 北京百度网讯科技有限公司 | 基于服务锁的数据同步方法及装置、电子设备与存储介质 |
CN112463318A (zh) * | 2020-11-17 | 2021-03-09 | 深圳市优必选科技股份有限公司 | 一种定时任务处理方法、装置及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113727145A (zh) * | 2021-11-04 | 2021-11-30 | 飞狐信息技术(天津)有限公司 | 视频发布的方法及装置、电子设备、存储介质 |
CN113961330A (zh) * | 2021-11-04 | 2022-01-21 | 京东科技信息技术有限公司 | 分布式定时任务执行方法、装置、设备和计算机可读介质 |
CN113727145B (zh) * | 2021-11-04 | 2022-03-01 | 飞狐信息技术(天津)有限公司 | 视频发布的方法及装置、电子设备、存储介质 |
CN114531442A (zh) * | 2022-02-17 | 2022-05-24 | 深圳壹账通智能科技有限公司 | 分布式定时任务管理方法、装置、设备及存储介质 |
CN116030398A (zh) * | 2023-03-31 | 2023-04-28 | 山东爱特云翔计算机有限公司 | 一种基于多路视频信号的任务分析方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113282580A (zh) | 用于执行定时任务的方法、存储介质及服务器 | |
CN106712981B (zh) | 一种节点变更通知方法及装置 | |
CN107689976B (zh) | 一种文件传输方法及装置 | |
CN106909595B (zh) | 一种数据迁移方法及装置 | |
CN107580032B (zh) | 数据处理方法、装置及设备 | |
CN103530160A (zh) | 一种页面加载的方法和装置 | |
CN106202082B (zh) | 组装基础数据缓存的方法及装置 | |
CN108966159B (zh) | 短信撤回方法、系统、计算机设备和存储介质 | |
CN109389299B (zh) | 工作流流程部署方法、装置、计算机设备和存储介质 | |
US9471896B2 (en) | Memo synchronization system, mobile system, and method for synchronizing memo data | |
CN108512930B (zh) | 一种共享文件的管理方法、装置、服务器和存储介质 | |
CN106302609A (zh) | 一种访问方法及装置 | |
CN104657435A (zh) | 一种应用数据的存储管理方法和网络管理系统 | |
CN108512948B (zh) | 通讯录更新方法、装置、计算机设备和存储介质 | |
CN108108126B (zh) | 一种数据处理方法、装置及设备 | |
CN111240892A (zh) | 数据备份方法及装置 | |
CN108366098B (zh) | 一种网络节点的数据交互方法及装置 | |
CN110543348B (zh) | 一种指令处理方法、系统、电子设备和存储介质 | |
CN108228248A (zh) | 一种依赖关系的确定方法和装置 | |
CN111294377A (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN108205559B (zh) | 一种数据管理方法及其设备 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN110609707B (zh) | 在线数据处理系统生成方法、装置及设备 | |
EP4148577A2 (en) | Method and apparatus of responding to client fault detection with update operation, electronic device, and storage medium | |
CN110471906A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210820 |
|
RJ01 | Rejection of invention patent application after publication |