CN111026524A - 处理延时任务的方法、装置、计算机设备和存储介质 - Google Patents

处理延时任务的方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111026524A
CN111026524A CN201911025473.6A CN201911025473A CN111026524A CN 111026524 A CN111026524 A CN 111026524A CN 201911025473 A CN201911025473 A CN 201911025473A CN 111026524 A CN111026524 A CN 111026524A
Authority
CN
China
Prior art keywords
task
time
delay
delay task
target
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.)
Granted
Application number
CN201911025473.6A
Other languages
English (en)
Other versions
CN111026524B (zh
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911025473.6A priority Critical patent/CN111026524B/zh
Publication of CN111026524A publication Critical patent/CN111026524A/zh
Application granted granted Critical
Publication of CN111026524B publication Critical patent/CN111026524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本申请涉及一种处理延时任务的方法、装置、计算机设备和存储介质。所述方法包括:获取延时任务和对应的执行时刻;将延时任务和对应的执行时刻写入hive数据库;当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务;按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;在时间轮的槽位的对应时刻执行槽位对应的所述目标延时任务。由于hive具有查询速度快、数据存储量大的特点,故采用hive存储延时任务可以存储大量的延时任务,定时查询hive中的延时任务时,可以快速拉取hive中的延时任务,通过时间轮定时执行拉取到的任务,提高延时任务的执行准确度。

Description

处理延时任务的方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种处理延时任务的方法、装置、计算机设备和存储介质。
背景技术
随着开放平台的某些业务场景需要对一些业务进行延迟执行,比如下单后半个小时检查是否付款,活动邀请码发出去3天后检查是否使用等等,延迟执行时间不固定,随着业务量以及用户的增加,延迟任务数量也会很大。目前处理的方式是每个任务都添加定时扫描功能,检测是否需要执行,针对延迟任务的具体执行时间,如果检测间隔时间短,对IO性能影响大,如果检测间隔时间长,又不能按照延时任务的实际执行时间执行任务,随着任务数量不断增多,海量延迟任务的准确执行成为了急需解决的问题。
发明内容
为了解决上述技术问题,本申请提供了一种处理延时任务的方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种处理延时任务的方法,包括:
获取延时任务和对应的执行时刻;
将延时任务和对应的执行时刻写入hive数据库;
当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务;
按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;
在时间轮的槽位的对应时刻执行槽位对应的所述目标延时任务。
第二方面,本申请提供了一种处理延时任务的装置,包括:
任务获取模块,用于获取延时任务和对应的执行时刻。
任务写入模块,用于将延时任务和对应的执行时刻写入hive数据库。
任务拉取模块,用于当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务;
任务投递模块,用于按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;
任务执行模块,用于在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取延时任务和对应的执行时刻;
将延时任务和对应的执行时刻写入hive数据库;
当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务;
按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;
在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取延时任务和对应的执行时刻;
将延时任务和对应的执行时刻写入hive数据库;
当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务;
按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;
在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
上述处理延时任务的方法、装置、计算机设备和存储介质,所述方法包括:获取延时任务和对应的执行时刻;将延时任务和对应的执行时刻写入hive数据库;当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务;按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;在时间轮的槽位的对应时刻执行槽位对应的所述目标延时任务。由于hive具有查询速度快、数据存储量大的特点,故采用hive存储延时任务可以存储大量的延时任务,定时查询hive中的延时任务时,可以快速拉取hive中的延时任务,通过时间轮定时执行拉取到的任务,提高延时任务的执行准确度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中处理延时任务的方法的应用环境图;
图2为一个实施例中处理延时任务的方法的流程示意图;
图3为一个实施例中时间轮的工作原理示意图;
图4为一个实施例中处理延时任务的方法的框架示意图;
图5为一个实施例中处理延时任务的装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中处理延时任务的方法的应用环境图。参照图1,该处理延时任务的方法应用于处理延时任务的系统。该处理延时任务的系统包括终端组110(终端111、终端112和终端113)和服务器120。终端110和服务器120通过网络连接。服务器120获取终端组110上传的延时任务和对应的执行时刻;将延时任务和对应的执行时刻写入hive数据库;当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务,按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位,在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种处理延时任务的方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明。参照图2,该处理延时任务的方法具体包括如下步骤:
步骤S201,获取延时任务和对应的执行时刻。
步骤S202,将延时任务和对应的执行时刻写入hive数据库。
步骤S203,当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务。
步骤S204,按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位。
步骤S205,在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
具体地,延时任务是指在业务处理过程中需要延时执行的任务,延时任务包括但不限于检测订单是否支付、验证信息是否通过等等需要延迟执行的任务。延迟任务的执行时刻是指延迟任务的实际执行时间。Hive数据库是一种能够对海量数据进行快速查询的数据库。将需要延时执行的任务写入Hive数据库,能够解决数据量存储问题。预设时刻是指预先设定的时刻,预设时刻可以采用预设规则确定,如设定起始时间和间隔时间,设起始时间为第一个预设时刻,则整数个间隔时间加上起始时间对应的时间为预设时刻。查询hive数据库中的存储的延时任务,根据各个延时任务的执行时刻和执行定时查询的时间从hive数据库中查找匹配的延时任务作为目标延时任务。而用户响应事件的时间不同、事件的延迟时间不同等等导致延迟任务可能集中产生。再者随着业务的增加、用户数量的增加使得延迟任务的数量也越来越多。采用hive数据库存储延时任务能够正常存储大量的任务数据。如定时查询时间为整点,查询间隔为1或2小时,即在整点时刻查询hive数据库中的延时任务,选择在一个小时内或2小时内将要执行的延时任务作为目标延时任务。当存在目标延时任务时,将目标延时任务投递至时间轮(timewheel)。时间轮是一个存储定时任务的环形队列,底层采用数组实现,数组中的每个元素可以存放一个定时执行的目标延迟任务列表。目标延迟任务列表是一个环形的双向链表,链表中的每一项表示的都是定时任务项,定时任务项中封装了真正的目标延时任务。
参照图3,图3为一个时间轮的示意图,图3中箭头按照一定方向固定频率(类似手表指针)跳动,每一次跳动称为一个tick。ticksPreWheel表示一个定时轮上的tick数,如果每次tick为1秒,ticksPreWheel为60,那么就跟秒针走动完全一致。
根据时间轮中的各个目标延迟任务的真正执行时间执行该目标延迟任务。即当当前时刻为时间轮中的槽位对应的时刻一致时,执行该槽位对应的目标延迟任务。即延迟任添加对应的定时扫描功能,检测是否需要执行,一方面针对延迟任务的具体执行时间,如果每秒检测一次,对IO性能会有影响,如果间隔时间长,又对任务的实际执行时间有影响。利用Hive存储解决存储需求大的问题,采用时间轮定时执行延迟任务提高执行延时任务的时间准确度。
针对任务量大的系统,通过hive数据库存储延时任务,定时从hive数据库中拉取当前时刻需要执行的任务,基于hive数据库的特性,可以存储大量的数据,且数据的响应时间快,满足了大数据的存储需求和响应需求;通过时间轮来执行延时任务解决了海量延迟任务按期执行的问题,从而保证系统的运行性能。
在一个实施例中,步骤S201,获取各个延时任务,延时任务携带延时时长和触发时刻;根据各个延时任务的延时时长和触发时刻计算对应的延时任务的执行时刻。
具体地,获取各个计算机设备上传的延时任务,延时任务包括延时任务类型和触发时刻,触发时刻是指延时任务的生成时间。根据延时时长和触发时刻确定计算得到执行时刻,即任务生成时间加上延时时长得到的延时任务的执行时刻。
在一个实施例中,根据业务需求配置时间轮的槽位数量和时间周期。
具体地,时间轮的槽位数量和时间周期共同确定了确定执行时间的精准度,如相同时间周期,槽位数据量越多则执行时间越精准,同理相同槽位数量,时间周期越短,执行时间越精准。业务需求是指处理业务的需求,若服务器在固定时间内需要响应的延时任务越多,则设置的时间周期较短,即拉取目标延时任务的间隔时间变短,如业务需求中延时任务较少时,则拉取目标延时任务的间隔时间变长。具体的设置可以根据真实的业务需求确定。根据真实的业务需求确定时间周期和对应的槽位数量能够在更准确的时间执行延时任务。
在一个实施例中,根据业务处理速率计算时间周期和槽位数量。
具体地,其中业务处理速率是指处理业务的速度。其中业务处理速率可以采用服务器的并发数和响应时间等参数衡量,如采用并发数和响应时间确定的QPS(Queries PerSecond)或TPS(Transactions Per Second)等衡量处理速率。采用TPS或QPS计算时间周期和对应的槽位数量。
在一个实施例中,根据时间轮的特性,解决延迟任务的执行问题:设延迟任务的延迟时间为X秒,通过X%(ticksPreWheel*tick)计算出X在TimeWheel中的槽位。根据任务量大小的评估,设置TimeWheel中ticksPreWheel的大小以便可以把目标延迟任务投递到对应的tick上,按实际时间执行延迟任务。
在一个实施例中,步骤S203包括:从hive数据库中获取与预设时刻对应的时间周期的延时任务作为目标延时任务。
在本实施例中,步骤S204,包括:根据目标延时任务的执行时刻和获取延时任务的时间计算目标延时任务的槽位编号,按照各个目标延时任务的槽位编号投递各个目标延时任务。
具体地,预设时刻对应的时间周期是指在当前预设时刻到下一个预设时刻之间的时间长度为一个时间周期。当当前时刻为预设时刻时,从hive数据库中获取执行时间在当前预设时刻到下一个预设时刻之间的延时任务作为目标延时任务。如当前时刻为2019-10-10的12点整点,下一个时刻为2019-10-10的13点整点,则时间周期为一个小时,获取2019-10-10的12点到13点之间执行的延时任务作为目标延时任务。若在该段时间内存在目标延任务时,根据各个目标延时任务的执行时刻将目标延时任务投递到时间轮中的对应槽位。计算当前预设时刻和各个目标延时任务的执行时刻之间的时间差,根据时间差、时间轮的时间周围和槽位数量计算各个目标延时任务所在槽位编号。按照各个目标延时任务对应的槽位编号投递各个目标延时任务。
在一个具体的实施例中,上述处理延迟任务的方法,包括:
根据延迟任务的TPS(TransactionsPerSecond)评估延时任务的拉取间隔(即时间轮的时间周期),设置TimeWheel的时间周期和槽位数量,槽位对应的时间即为每个tick代表的时间。为了便于说明以1个小时为例,TimeWheel中槽位数量为60*60,即每个tick为1秒。
当有延迟任务的时候,按照延迟任务的发起的时间以及延迟间隔,计算出实际执行时间:实际执行时间=发起时间+延迟间隔。然后根据实际执行时间生成时间表,然后把任务具体信息写入hive数据库,其中,实际执行时间可以为yy-MM-dd-HH格式。
参照图4,图4为处理延时任务的方法的框架示意图。
获取延时任务:接收延时任务,延时任务携带执行时刻。
生成时间表:生成延时任务的时间表。延时任务发起时间为:2019-08-21 10:20:22,延迟间隔为1天,实际执行时间为:2019-08-22 10:20:22,生成的时间表中的时间为2019-08-22-10。
Hive存储:采用hive数据库存储延时任务。
筛选目标延时任务:从hive数据库中查询在时间轮一个时间周期(如一个小时)内需要执行的延迟任务。
任务投递:根据具体执行时间的秒数,投递到TimeWheel中具体的位置(槽位)上。比如延时任务的实际执行时间为2019-08-22 10:20:22,实际执行的秒数为:20*60+22,投递到TimeWheel中第1222位置上。
执行:TimeWheel按照1秒的频率,根据当前tick上的任务进行执行。具体执行方式可以根据业务不同选择不同,比如延迟任务为调用API时,则执行API的调用,延迟任务为将数据投递至消息中间件,则执行消息投递等。
利用时间轮特性,将延迟任务按照实际执行时间写入hive表然后定时拉取投递到时间轮对应节点上按时执行,根据任务数据量大小设置时间轮大小及拉取间隔,可以保证内存大小可用性,解决了海量延迟任务的处理方法。利用hive存储定时任务,根据具体执行时间建立partition,可以快速拉取所有任务利用时间轮特性,可以保证延迟任务在准确的时间点执行,任务执行方式配置灵活性,可以自定义。
图2为一个实施例中处理延时任务的方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种处理延时任务的装置200,包括:
任务获取模块201,用于获取延时任务和对应的执行时刻。
任务写入模块202,用于将延时任务和对应的执行时刻写入hive数据库。
任务拉取模块203,用于当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务。
任务投递模块204,用于按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位。
任务执行模块205,用于在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
在一个实施例中,任务获取模块201具体用于获取各个延时任务,延时任务携带延时时长和触发时刻;根据各个延时任务的延时时长和触发时刻计算对应的延时任务的执行时刻。
在一个实施例中,处理延时任务的装置200,还包括:
参数配置模块,用于根据业务需求配置时间轮的槽位数量和时间周期。
在一个实施例中,参数配置模块具体用于根据业务处理速率计算所述时间周期和槽位数量。
在一个实施例中,任务拉取模块203具体用于从hive数据库中获取与预设时刻对应的时间周期的延时任务作为目标延时任务
任务投递模块204具体用于根据目标延时任务的执行时刻和获取延时任务的时间计算目标延时任务的槽位编号,按照各个目标延时任务的槽位编号投递各个目标延时任务。
图6示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图6所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现处理延时任务的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行处理延时任务的方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的处理延时任务的装置可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成该处理延时任务的装置的各个程序模块,比如,图5所示的任务获取模块201、任务写入模块202、任务拉取模块203、任务投递模块204和任务执行模块205。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的处理延时任务的方法中的步骤。
例如,图6所示的计算机设备可以通过如图5所示的处理延时任务的装置中的任务获取模块201执行获取延时任务和对应的执行时刻。计算机设备可以通过任务写入模块202执行将延时任务和对应的执行时刻写入hive数据库。计算机设备可以通过任务拉取模块203执行当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务。计算机设备可以通过任务投递模块204执行按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位。计算机设备可以通过任务执行模块205执行在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取延时任务和对应的执行时刻;将延时任务和对应的执行时刻写入hive数据库;当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务,按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
在一个实施例中,获取延时任务和对应的执行时刻,包括:获取各个延时任务,延时任务携带延时时长和触发时刻;根据各个延时任务的延时时长和触发时刻计算对应的延时任务的执行时刻。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据业务需求配置时间轮的槽位数量和时间周期。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:业务需求包括业务处理速率,根据业务需求配置时间轮的槽位数量和时间周期,包括:根据业务处理速率计算时间周期和槽位数量。
在一个实施例中,当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务,包括:从hive数据库中获取与预设时刻对应的时间周期的延时任务作为目标延时任务;按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位,包括:根据目标延时任务的执行时刻和获取延时任务的时间计算目标延时任务的槽位编号,按照各个目标延时任务的槽位编号投递各个目标延时任务。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取延时任务和对应的执行时刻;将延时任务和对应的执行时刻写入hive数据库;当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务,按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位;在时间轮的槽位的对应时刻执行槽位对应的目标延时任务。
在一个实施例中,获取延时任务和对应的执行时刻,包括:获取各个延时任务,延时任务携带延时时长和触发时刻;根据各个延时任务的延时时长和触发时刻计算对应的延时任务的执行时刻。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据业务需求配置时间轮的槽位数量和时间周期。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:业务需求包括业务处理速率,根据业务需求配置时间轮的槽位数量和时间周期,包括:根据业务处理速率计算时间周期和槽位数量。
在一个实施例中,当时间运行至预设时刻时,根据各个延时任务的执行时刻,从hive数据库获取与预设时刻匹配的延时任务,作为目标延时任务,包括:从hive数据库中获取与预设时刻对应的时间周期的延时任务作为目标延时任务;按照对各个目标延时任务的执行时刻,将各个目标延时任务投递至时间轮对应的槽位,包括:根据目标延时任务的执行时刻和获取延时任务的时间计算目标延时任务的槽位编号,按照各个目标延时任务的槽位编号投递各个目标延时任务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种处理延时任务的方法,其特征在于,所述方法包括:
获取延时任务和对应的执行时刻;
将所述延时任务和对应的执行时刻写入hive数据库;
当时间运行至预设时刻时,根据各个所述延时任务的执行时刻,从所述hive数据库获取与所述预设时刻匹配的延时任务,作为目标延时任务;
按照对各个所述目标延时任务的执行时刻,将各个所述目标延时任务投递至时间轮对应的槽位;
在所述时间轮的槽位的对应时刻执行所述槽位对应的所述目标延时任务。
2.根据权利要求1所述的方法,其特征在于,所述获取延时任务和对应的执行时刻,包括:
获取各个所述延时任务,所述延时任务携带延时时长和触发时刻;
根据各个所述延时任务的所述延时时长和所述触发时刻计算对应的所述延时任务的执行时刻。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据业务需求计算所述时间轮的时间周期和槽位数量。
4.根据权利要求3所述的方法,其特征在于,所述方法包括:
所述根据各个所述延时任务的执行时刻,从所述hive数据库获取与所述预设时刻匹配的延时任务,作为目标延时任务,包括:从所述hive数据库中获取与所述预设时刻对应的所述时间周期的延时任务作为所述目标延时任务;
所述按照对各个所述目标延时任务的执行时刻,将各个所述目标延时任务投递至时间轮对应的槽位,包括:根据所述目标延时任务的执行时刻和获取所述延时任务的时间计算所述目标延时任务的槽位编号,按照各个所述目标延时任务的槽位编号投递各个所述目标延时任务。
5.一种延时任务的处理装置,其特征在于,所述装置包括:
任务获取模块,用于获取延时任务和对应的执行时刻;
任务写入模块,用于将所述延时任务和对应的执行时刻写入hive数据库;
任务拉取模块,用于当时间运行至预设时刻时,根据各个所述延时任务的执行时刻,从所述hive数据库获取与所述预设时刻匹配的延时任务,作为目标延时任务;
任务投递模块,用于按照对各个所述目标延时任务的执行时刻,将各个所述目标延时任务投递至时间轮对应的槽位;
任务执行模块,用于在所述时间轮的槽位的对应时刻执行所述槽位对应的所述目标延时任务。
6.根据权利要求5所述的装置,其特征在于,所述任务获取模块具体用于获取各个所述延时任务,所述延时任务携带延时时长和触发时刻,根据各个所述延时任务的延时时长和所述触发时刻计算对应的各个所述延时任务的执行时刻。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
参数配置模块,用于根据业务需求配置所述时间轮的时间周期和槽位数量。
8.根据权利要求7所述的装置,其特征在于,所述任务拉取模块具体用于从所述hive数据库中获取与所述预设时刻对应的所述时间周期的延时任务作为所述目标延时任务;
所述任务投递模块具体用于根据所述目标延时任务的执行时刻和获取所述延时任务的时间计算所述目标延时任务的槽位编号,按照各个所述目标延时任务的槽位编号投递各个所述目标延时任务。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN201911025473.6A 2019-10-25 2019-10-25 处理延时任务的方法、装置、计算机设备和存储介质 Active CN111026524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911025473.6A CN111026524B (zh) 2019-10-25 2019-10-25 处理延时任务的方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911025473.6A CN111026524B (zh) 2019-10-25 2019-10-25 处理延时任务的方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111026524A true CN111026524A (zh) 2020-04-17
CN111026524B CN111026524B (zh) 2024-07-05

Family

ID=70200108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911025473.6A Active CN111026524B (zh) 2019-10-25 2019-10-25 处理延时任务的方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111026524B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286655A (zh) * 2020-10-19 2021-01-29 江苏银承网络科技股份有限公司 分布式延时调度方法、装置及系统
CN112346857A (zh) * 2020-10-22 2021-02-09 杭州安恒信息技术股份有限公司 数据下发方法、装置、计算机设备和存储介质
CN112764912A (zh) * 2021-02-27 2021-05-07 中电万维信息技术有限责任公司 一种用于数据集成的轻量级分布式调度方法及系统
CN113961369A (zh) * 2021-10-21 2022-01-21 上海景域智能科技有限公司 一种文旅产业平台的延时调度方法、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220030A (zh) * 2017-05-31 2017-09-29 北京北信源软件股份有限公司 延时任务执行方法及装置
CN108287751A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 任务执行方法及装置、分布式系统
CN108733462A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 延迟任务的方法和装置
CN108874926A (zh) * 2018-05-31 2018-11-23 康键信息技术(深圳)有限公司 海量数据查询方法、装置、计算机设备和存储介质
CN110032438A (zh) * 2019-04-24 2019-07-19 北京高途云集教育科技有限公司 延时任务执行方法、装置及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287751A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 任务执行方法及装置、分布式系统
CN108733462A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 延迟任务的方法和装置
CN107220030A (zh) * 2017-05-31 2017-09-29 北京北信源软件股份有限公司 延时任务执行方法及装置
CN108874926A (zh) * 2018-05-31 2018-11-23 康键信息技术(深圳)有限公司 海量数据查询方法、装置、计算机设备和存储介质
CN110032438A (zh) * 2019-04-24 2019-07-19 北京高途云集教育科技有限公司 延时任务执行方法、装置及电子设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286655A (zh) * 2020-10-19 2021-01-29 江苏银承网络科技股份有限公司 分布式延时调度方法、装置及系统
CN112346857A (zh) * 2020-10-22 2021-02-09 杭州安恒信息技术股份有限公司 数据下发方法、装置、计算机设备和存储介质
CN112764912A (zh) * 2021-02-27 2021-05-07 中电万维信息技术有限责任公司 一种用于数据集成的轻量级分布式调度方法及系统
CN112764912B (zh) * 2021-02-27 2022-09-30 中电万维信息技术有限责任公司 一种用于数据集成的轻量级分布式调度方法及系统
CN113961369A (zh) * 2021-10-21 2022-01-21 上海景域智能科技有限公司 一种文旅产业平台的延时调度方法、系统及存储介质

Also Published As

Publication number Publication date
CN111026524B (zh) 2024-07-05

Similar Documents

Publication Publication Date Title
CN111026524A (zh) 处理延时任务的方法、装置、计算机设备和存储介质
US20210006937A1 (en) Systems and methods for deploying dynamic geo-fences based on content consumption levels in a geographic location
US10331483B1 (en) Scheduling data access jobs based on job priority and predicted execution time using historical execution data
US10558471B2 (en) Proof of configuration
CN109634819B (zh) 告警根因定位方法和装置、电子设备
CN109547807B (zh) 一种基于直播的信息处理方法、装置及服务器
CN110109737B (zh) 应用程序的启动方法、装置、计算机设备及存储介质
CN110502545B (zh) 数据存储方法、装置、设备及计算机可读存储介质
CN110781372B (zh) 一种优化网站的方法、装置、计算机设备及存储介质
CN110275768A (zh) 数据处理方法、装置及电子设备
CN114237852A (zh) 一种任务调度方法、装置、服务器及存储介质
US9996600B1 (en) Asynchronous communication of transaction data to clients
CN113391901A (zh) Rpa机器人的管理方法、装置、设备及存储介质
CN110222264B (zh) 应用程序维护控制方法、装置、终端、服务器及存储介质
WO2014190498A1 (en) Application ranking calculating apparatus and usage information collecting apparatus
CN110716916A (zh) 资源在线管理方法、装置、计算机设备和存储介质
CN112527543A (zh) 客户端启动异常处理方法、装置、电子设备和存储介质
CN113342863A (zh) 业务单据处理方法、装置、计算机设备和存储介质
US9871694B1 (en) Parallel processing for transaction data generation
CN117033766A (zh) 业务处理行为预测方法、装置、计算机设备和存储介质
CN104539450B (zh) 网站运营活动处理系统、方法和装置
CN113268183B (zh) 一种列表页面倒计时显示方法及装置
CN112989323B (zh) 进程检测方法、装置、终端及存储介质
CN111858542B (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN114791930A (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
GR01 Patent grant
GR01 Patent grant