CN114416324A - 任务触发方法、装置、计算机设备和存储介质 - Google Patents

任务触发方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114416324A
CN114416324A CN202210137930.6A CN202210137930A CN114416324A CN 114416324 A CN114416324 A CN 114416324A CN 202210137930 A CN202210137930 A CN 202210137930A CN 114416324 A CN114416324 A CN 114416324A
Authority
CN
China
Prior art keywords
task
execution
target
timer
processed
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
CN202210137930.6A
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.)
Kangjian Information Technology Shenzhen Co Ltd
Original Assignee
Kangjian Information Technology Shenzhen 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 Kangjian Information Technology Shenzhen Co Ltd filed Critical Kangjian Information Technology Shenzhen Co Ltd
Priority to CN202210137930.6A priority Critical patent/CN114416324A/zh
Publication of CN114416324A publication Critical patent/CN114416324A/zh
Pending legal-status Critical Current

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/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
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H80/00ICT specially adapted for facilitating communication between medical practitioners or patients, e.g. for collaborative diagnosis, therapy or health monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Physics & Mathematics (AREA)
  • Pathology (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及业务过程优化技术领域,提供了一种任务触发方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。采用本方法能够提高超时事件触发效率。

Description

任务触发方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种任务触发方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了医疗在线问诊技术。医疗在线问诊技术是指利用互联网等信息技术开展远程会诊和远程诊断。在医疗在线问诊中,会发生很多超时事件,超时事件的发生会影响到医疗在线问诊效率,因此需要对超时事件进行提醒。
传统技术中,常采用的超时事件触发处理的方式为,通过扫描数据库等持久化的任务数据,使得计算逻辑以SQL(Structured Query Language,结构化查询语言)的方式在远程数据库执行超时事件触发。
然而,传统方法由于通常定期扫描持久任务数据,触发方式效率低,且可能存在大量无效的数据库扫描,存在超时事件触发效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高超时事件触发效率的任务触发方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种任务触发方法。所述方法包括:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
在其中一个实施例中,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数之后,还包括:
当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数;
跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
在其中一个实施例中,响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务包括:
响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息;
根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
在其中一个实施例中,定时器属性信息包括定时器启动时间、历史执行时长以及定时器总槽位数;
根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务包括:
根据任务处理时长以及定时器启动时间,确定第一执行时长;
根据第一执行时长和历史执行时长,确定第二执行时长;
根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位;
根据任务执行轮数和任务执行槽位,创建对应的待处理任务。
在其中一个实施例中,根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位包括:
计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位。
在其中一个实施例中,根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中包括:
根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列;
基于预设时间窗口,从缓冲队列中获取待处理任务;
将待处理任务加载至定时器槽位对应的任务列表中。
在其中一个实施例中,触发目标执行任务包括:
根据目标执行任务的目标任务标识确定对应的目标消息队列;
推送超时提示消息至目标消息队列。
第二方面,本申请还提供了一种任务触发装置。所述装置包括:
响应模块,用于响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
放置模块,用于根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
获取模块,用于当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历模块,用于遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
触发模块,用于查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
上述任务触发方法、装置、计算机设备、存储介质和计算机程序产品,通过响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务,能够根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中,从而可以在定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数,实现对待处理任务的轮询,进而可以查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务,整个过程,能够利用任务执行轮数和任务执行槽位,在本地实现对待处理任务的自动化轮询,在待处理任务到达处理时限,即待处理任务为目标执行任务时,立即执行触发,能够提高超时事件触发效率。
附图说明
图1为一个实施例中任务触发方法的应用环境图;
图2为一个实施例中任务触发方法的流程示意图;
图3为一个实施例中定时器的示意图;
图4为另一个实施例中任务触发方法的流程示意图;
图5为一个实施例中任务触发装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的任务触发方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。用户通过在终端102上进行操作,发起任务处理请求(具体可以为在线问诊请求)至服务器104,服务器104响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务,根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中,当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数,查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种任务触发方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
其中,任务处理请求是指对任务进行处理的请求。比如,任务处理请求具体可以是指对在线问诊进行处理的请求。待处理任务是指与任务处理请求对应的计时任务,用于监控任务处理请求的处理时长。比如,待处理任务具体可以是指与在线问诊任务对应的计时任务,用于监控在线问诊任务的处理时长。任务执行轮数是指待处理任务在定时器中需要执行的轮数。任务执行槽位是指待处理任务在定时器中应该放置的槽位编号。定时器是一个逻辑概念上的计时器,其中包括许多槽位,每个槽位与运转频率对应。举例说明,定时器可以如图3所示,其上面有8个tick(钟表的滴答声),若假定定时器的每个tick是1秒,则走完这个轮盘需要8秒,每个tick对应的刻度就是槽位,槽位上维护一个链表,代表维护在这个tick里的待处理任务。
具体的,在需要进行在线问诊时,用户会通过在终端上进行操作,发起任务处理请求至服务器,服务器响应任务处理请求,会根据任务处理请求确定任务处理时长,并获取定时器的属性信息,以根据任务处理时长以及属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位,并根据任务执行轮数和任务执行槽位这两个任务属性参数,创建对应的待处理任务。
步骤204,根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中。
其中,任务列表用于维护定时器槽位内的待处理任务。比如,任务列表具体可以是指用于维护待处理任务的链表。待处理任务呗放置于定时器槽位对应的任务列表中后,定时器可以通过对待处理任务进行计时来监控任务处理请求的执行,以在任务处理请求达到处理时限时触发超时提示消息。需要说明的是,当与待处理任务对应的任务处理请求预先被处理完成或达到处理时限(即待处理任务达到执行时限时),服务器会将待处理任务从任务列表中移除。
具体的,服务器会根据任务执行槽位,确定需要放置待处理任务的定时器槽位,根据任务执行轮次,将待处理任务放置于定时器槽位对应的任务列表中。
步骤206,当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表。
具体的,服务器会实时运转定时器,当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表,以判断目标任务列表中待处理任务是否需要执行。
步骤208,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数。
其中,剩余运转轮数用于描述若需要执行待处理任务,定时器还需要运转的轮次数。比如,剩余运转轮数具体可以是0,表示可以执行待处理任务。
具体的,在获取目标任务列表后,服务器会对目标任务列表进行遍历,依次确定目标任务列表中各任务对应的剩余运转轮数,以判断是否有任务在本轮运转后需要执行。
步骤210,查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
其中,预设轮数是指预先设置的轮次阈值,用于对是否需要执行待处理任务进行判断,可按照需要自行设置。比如,预设轮数具体可以是0。
具体的,服务器会比对目标任务列表中各任务对应的剩余运转轮数和预设轮数,以查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,当目标任务列表中存在目标执行任务时,表示该目标执行任务需要执行,服务器会触发目标执行任务,以提示与目标执行任务对应的任务处理请求已经到达处理时限,不必再继续执行,并将目标执行任务从任务列表中移除。
上述任务触发方法,通过响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务,能够根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中,从而可以在定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数,实现对待处理任务的轮询,进而可以查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务,整个过程,能够利用任务执行轮数和任务执行槽位,在本地实现对待处理任务的自动化轮询,在待处理任务到达处理时限,即待处理任务为目标执行任务时,立即执行触发,能够提高超时事件触发效率。
在一个实施例中,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数之后,还包括:
当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数;
跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
具体的,当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,表示没有待处理任务达到执行时限,需要执行,服务器会对目标任务列表中各任务对应的剩余运转轮数进行扣减,更新剩余运转轮数,以实现对目标任务列表中任务的执行轮数和计数。与此同时,定时器是实时继续运转的,定时器会继续运转至新的槽位节点,获取当前槽位节点对应的目标任务列表,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数,查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
具体的,定时器在完成一轮运转后,会再次运转至目标任务列表中各任务对应的剩余运转轮数已更新的槽位节点,在再次运转至此槽位节点时,服务器会再次获取此槽位节点对应的目标任务列表,遍历目标任务列表,确定目标任务列表中各任务对应的已更新剩余运转轮数,查找目标任务列表中已更新剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
进一步的,此时,若存在已更新剩余运转轮数为预设轮数,表示与该已更新剩余运转轮数对应的任务为目标执行任务,已经达到执行实现,服务器会触发此时确定的目标执行任务,以提示与目标执行任务对应的任务处理请求已经到达处理时限,不必再继续执行,并将目标执行任务从目标任务列表中移除。若不存在已更新剩余运转轮数为预设轮数,表示在定时器又经过一轮运转后,目标任务列表中仍然没有任务达到执行时限,服务器会再次对目标任务列表中各任务对应的已更新剩余运转轮数进行扣减,更新该已更新剩余运转轮数,即再次对剩余运转轮数进行更新,以实现对目标任务列表中任务的执行轮数和计数,并跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤,等到定时器再次运转至此当前槽位节点,再次对目标任务列表中各任务进行判断。
本实施例中,通过当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数,能够实现对待处理任务的执行轮询和计数,通过跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤,能够利用定时器实现自动化轮询,以执行触发,提高超时事件触发效率。
在一个实施例中,响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务包括:
响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息;
根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
其中,任务标识用于区分不同类型的任务。比如,对于在线问诊任务,任务标识用于区分不同服务方的不同类型的在线问诊,举例说明,任务标识可以由业务方+任务类型+业务编号来表示,其中的业务方可以是指在线问诊的服务方,这里的服务方可以是指不同的医疗机构。任务处理时长是指预先设定的处理任务所需要的时间,针对不同类型的任务,其对应的任务处理时长可以不相同。比如,对于在线问诊任务,在线问诊类型包括内部问诊、外部问诊以及处方业务问诊等,针对不同的在线问诊类型,其对应的任务处理时长可以为:内部问诊15分钟、外部问诊20分钟、处方业务问诊30分钟。
其中,定时器属性信息用于描述定时器的基本属性,包括定时器启动时间、历史执行时长以及定时器总槽位数等,其中的定时器启动时间是指定时器初次启动的时间,历史执行时长是指定时器已经运转的总时间,定时器总槽位数是指定时器上设置的槽位总数。
具体的,在需要进行在线问诊时,用户会通过终端上进行操作,发起携带任务标识的任务处理请求至服务器,服务器响应任务处理请求,根据任务处理请求中携带的任务标识确定任务类型,根据任务类型确定预先设定的任务处理时长,并获取当前时刻的定时器属性信息,根据任务处理时长以及定时器属性信息,确定任务执行轮数和任务执行槽位,并根据任务执行轮数和任务执行槽位这两个任务属性参数创建对应的待处理任务。
本实施例中,通过响应携带任务标识的任务处理请求,根据任务标识确定任务处理时长,并获取定时器属性信息,能够根据任务处理时长以及定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位,并根据任务执行轮数和任务执行槽位创建对应的待处理任务,实现对待处理任务的创建。
在一个实施例中,定时器属性信息包括定时器启动时间、历史执行时长以及定时器总槽位数;
根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务包括:
根据任务处理时长以及定时器启动时间,确定第一执行时长;
根据第一执行时长和历史执行时长,确定第二执行时长;
根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位;
根据任务执行轮数和任务执行槽位,创建对应的待处理任务。
具体的,服务器会根据任务处理时长、定时器启动时间以及当前时刻,确定定时器应当要走的第一执行时长,再根据第一执行时长和定时器已经走过的历史执行时长,确定第二执行时长,第二执行时长即为定时器在监控待处理任务时还需要走的时长。在确定第二执行时长后,服务器会计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位,根据任务执行轮数和任务执行槽位这两个任务属性参数,创建对应的待处理任务。
举例说明,定时器启动后,服务器会记录定时器的定时器启动时间,每个待处理任务创建后,根据待处理任务的任务处理时长和定时器启动时间,计算出应当要走的tick数(a)(即第一执行时长),再减定时器启动以来走过的tick数(b)(即历史执行时长),得到第二执行时长。
本实施例中,通过利用任务处理时长、定时器启动时间、历史执行时长以及定时器总槽位数,确定任务执行轮数和任务执行槽位,能够利用任务执行轮数和任务执行槽位,实现对待处理任务的创建。
在一个实施例中,根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位包括:
计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位。
具体的,由于第二执行时长为定时器在监控待处理任务时还需要走的时长,服务器通过计算第二执行时长和定时器总槽位数的比值,就可以确定任务执行轮数,同时,服务器会根据第一执行时长对定时器总槽位数取模,通过取模可以确定待处理任务需要放置的任务执行槽位。
举例说明,服务器会用第二执行时长整除定时器的定时器总槽位数,整除的结果记录为轮数(round)(即任务执行轮数),tick数(a)对定时器总槽位数取模,记为槽位索引(即任务执行槽位)。
本实施例中,通过计算第二执行时长和定时器总槽位数的比值,能够实现对任务执行轮数的确定,通过根据第一执行时长对定时器总槽位数取模,能够得到任务执行槽位。
在一个实施例中,根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中包括:
根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列;
基于预设时间窗口,从缓冲队列中获取待处理任务;
将待处理任务加载至定时器槽位对应的任务列表中。
其中,本地的缓冲队列用于缓存待处理任务。预设时间窗口是指预先设置的获取待处理任务的时间段,比如,预设时间窗口具体可以为6个小时,则服务器每次在获取时仅获取与预设时间窗口对应的6个小时内的待处理任务。
具体的,服务器会根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列,基于预设时间窗口,从缓冲队列中获取与预设时间窗口对应时间段内的待处理任务,将待处理任务加载至定时器槽位对应的任务列表中。其中,本实施例中的定时器槽位与任务执行槽位对应。
举例说明,服务器会通过异步加载的方式将本地的缓冲队列中的待处理任务加载至定时器上。需要说明的是,异步加载时,服务器仅加载近期任务,确保通过定时器槽位维护的待处理任务都是近期需要触发的,通过一个不断移动的预设时间窗口,确保缓冲队列中的远期任务按照执行时间由近及远全部异步载入定时器。其中,近期任务可按照需要自行定义,比如,近期任务具体可以是指触发时间在6个小时内的任务,则预设时间窗口对应的为6个小时。
本实施例中,通过根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列,基于预设时间窗口,从缓冲队列中获取待处理任务,将待处理任务加载至定时器槽位对应的任务列表中,能够实现对待处理任务的加载。
在一个实施例中,触发目标执行任务包括:
根据目标执行任务的目标任务标识确定对应的目标消息队列;
推送超时提示消息至目标消息队列。
具体的,不同的任务与不同的消息队列相对应,当目标任务列表中存在目标执行任务时,服务器会根据目标执行任务的目标任务标识,查询预设的目标任务标识与消息队列对应关系,确定对应的目标消息队列,推送超时提示消息至目标消息队列,通过目标消息队列实现发送超时提示消息至对应的业务方,以提示与目标消息队列对应的业务方,与目标执行任务对应的任务处理请求的处理已经超时,业务方在接收到超时提示消息后,会了解到处理已经超时,从而可以加快处理速度,以提高处理效率。其中,超时提示消息的形式可以为:当前任务处理已超时。举例说明,当任务为在线问诊任务时,超时提示消息的形式可以为:当前在线问诊任务已超时。
本实施例中,通过采用消息异步触发,能够使得业务方只关注自己的消息队列即可获得需要的超时提示消息,能够不占用资源,进一步的利用消息队列的堆积和重试机制,提高服务器的性能和冗余度。
在一个实施例中,以图3中的定时器为例对本申请的任务触发方法进行举例说明,此处假设预设轮数为0。
对应图3中的定时器,当待处理任务1的任务处理时长为4秒时,表示待处理任务4秒后应当执行,则其应该加载到图3中下标为3的槽位,同时任务执行轮数为0。当待处理任务2的任务处理时长为28秒时,表示待处理任务28秒后应当执行,则应该也加载到图3中下标为3的槽位,同时任务执行轮数为3。对于这两个待处理任务来说,当定时器运转起来后,每秒走一个tick,然后对槽位关联的任务进行遍历,任务执行轮数为0的就立即触发待处理任务,同时将待处理任务从任务列表中移除,否则就做轮数扣减。定时器走到下标为3的槽位时,发现待处理任务1的任务执行轮数是0,所以将其确定为目标执行任务,触发待处理任务1,发现待处理任务2的任务执行轮数是3,进行轮数扣减,更新任务执行轮数为2,直到定时器运转3圈,第四圈走到下标为3的槽位时,发现当前的任务执行轮数为0,将其确定为目标执行任务,触发待处理任务2。
需要说明的是,本申请中的定时器可以维护大量的待处理任务(如实现为360个槽位的计时器,每个槽位存储10000个任务,单机就可以支撑360万个定时任务),同时对大量的任务通过CPU(central processing unit,中央处理器)计算(一个tick内完成遍历)就可以确定是否应该触发,可以实现非常高的单机调度性能。
在一个实施例中,如图4所示,通过一个流程示意图来说明本申请的任务触发方法,该任务触发具体包括以下步骤:
步骤402,响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息,定时器属性信息包括定时器启动时间、历史执行时长以及定时器总槽位数;
步骤404,根据任务处理时长以及定时器启动时间,确定第一执行时长;
步骤406,根据第一执行时长和历史执行时长,确定第二执行时长;
步骤408,计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位;
步骤410,根据任务执行轮数和任务执行槽位,创建对应的待处理任务;
步骤412,根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列;
步骤414,基于预设时间窗口,从缓冲队列中获取待处理任务;
步骤416,将待处理任务加载至定时器槽位对应的任务列表中;
步骤418,当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
步骤420,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
步骤422,查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,跳转至步骤424,当目标任务列表中存在剩余运转轮数达到预设轮数的目标执行任务时,跳转至步骤426;
步骤424,对剩余运转轮数进行扣减,更新剩余运转轮数,跳转至步骤418;
步骤426,根据目标执行任务的目标任务标识确定对应的目标消息队列;
步骤428,推送超时提示消息至目标消息队列。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的任务触发方法的任务触发装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个任务触发装置实施例中的具体限定可以参见上文中对于任务触发方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种任务触发装置,包括:响应模块502、放置模块504、获取模块506、遍历模块508和触发模块510,其中:
响应模块502,用于响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
放置模块504,用于根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
获取模块506,用于当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历模块508,用于遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
触发模块510,用于查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
上述任务触发装置,通过响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务,能够根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中,从而可以在定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表,遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数,实现对待处理任务的轮询,进而可以查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务,整个过程,能够利用任务执行轮数和任务执行槽位,在本地实现对待处理任务的自动化轮询,在待处理任务到达处理时限,即待处理任务为目标执行任务时,立即执行触发,能够提高超时事件触发效率。
在一个实施例中,触发模块还用于当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数,跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
在一个实施例中,响应模块还用于响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息,根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
在一个实施例中,定时器属性信息包括定时器启动时间、历史执行时长以及定时器总槽位数,响应模块还用于根据任务处理时长以及定时器启动时间,确定第一执行时长,根据第一执行时长和历史执行时长,确定第二执行时长,根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位,根据任务执行轮数和任务执行槽位,创建对应的待处理任务。
在一个实施例中,响应模块还用于计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位。
在一个实施例中,放置模块还用于根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列,基于预设时间窗口,从缓冲队列中获取待处理任务,将待处理任务加载至定时器槽位对应的任务列表中。
在一个实施例中,触发模块还用于根据目标执行任务的目标任务标识确定对应的目标消息队列,推送超时提示消息至目标消息队列。
上述任务触发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待处理任务等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种任务触发方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数,跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息,根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据任务处理时长以及定时器启动时间,确定第一执行时长,根据第一执行时长和历史执行时长,确定第二执行时长,根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位,根据任务执行轮数和任务执行槽位,创建对应的待处理任务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列,基于预设时间窗口,从缓冲队列中获取待处理任务,将待处理任务加载至定时器槽位对应的任务列表中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据目标执行任务的目标任务标识确定对应的目标消息队列,推送超时提示消息至目标消息队列。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数,跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息,根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据任务处理时长以及定时器启动时间,确定第一执行时长,根据第一执行时长和历史执行时长,确定第二执行时长,根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位,根据任务执行轮数和任务执行槽位,创建对应的待处理任务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列,基于预设时间窗口,从缓冲队列中获取待处理任务,将待处理任务加载至定时器槽位对应的任务列表中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据目标执行任务的目标任务标识确定对应的目标消息队列,推送超时提示消息至目标消息队列。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务;
根据任务执行轮数以及任务执行槽位,将待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历目标任务列表,确定目标任务列表中各任务对应的剩余运转轮数;
查找目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发目标执行任务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对剩余运转轮数进行扣减,更新剩余运转轮数,跳转至当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:响应任务处理请求,根据任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息,根据任务处理时长和定时器属性信息,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据任务处理时长以及定时器启动时间,确定第一执行时长,根据第一执行时长和历史执行时长,确定第二执行时长,根据第二执行时长和定时器总槽位数,确定任务执行轮数,并根据第一执行时长和定时器总槽位数,确定任务执行槽位,根据任务执行轮数和任务执行槽位,创建对应的待处理任务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:计算第二执行时长和定时器总槽位数的比值,将比值作为任务执行轮数,并根据第一执行时长对定时器总槽位数取模,得到任务执行槽位。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据任务执行轮数以及任务执行槽位,将待处理任务写入本地的缓冲队列,基于预设时间窗口,从缓冲队列中获取待处理任务,将待处理任务加载至定时器槽位对应的任务列表中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据目标执行任务的目标任务标识确定对应的目标消息队列,推送超时提示消息至目标消息队列。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种任务触发方法,其特征在于,所述方法包括:
响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据所述任务执行轮数和所述任务执行槽位创建对应的待处理任务;
根据所述任务执行轮数以及所述任务执行槽位,将所述待处理任务放置于定时器槽位对应的任务列表中;
当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历所述目标任务列表,确定所述目标任务列表中各任务对应的剩余运转轮数;
查找所述目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发所述目标执行任务。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述目标任务列表,确定所述目标任务列表中各任务对应的剩余运转轮数之后,还包括:
当所述目标任务列表中不存在剩余运转轮数达到预设轮数的目标执行任务时,对所述剩余运转轮数进行扣减,更新所述剩余运转轮数;
跳转至所述当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表的步骤。
3.根据权利要求1所述的方法,其特征在于,所述响应任务处理请求,获取所述待处理任务对应的任务执行轮数以及任务执行槽位、并根据所述任务执行轮数和所述任务执行槽位创建对应的待处理任务包括:
响应任务处理请求,根据所述任务处理请求中携带的任务标识确定任务处理时长,并获取定时器属性信息;
根据所述任务处理时长和所述定时器属性信息,获取所述待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务。
4.根据权利要求3所述的方法,其特征在于,所述定时器属性信息包括定时器启动时间、历史执行时长以及定时器总槽位数;
所述根据所述任务处理时长和所述定时器属性信息,获取所述待处理任务对应的任务执行轮数以及任务执行槽位、并根据任务执行轮数和任务执行槽位创建对应的待处理任务包括:
根据所述任务处理时长以及所述定时器启动时间,确定第一执行时长;
根据所述第一执行时长和所述历史执行时长,确定第二执行时长;
根据所述第二执行时长和所述定时器总槽位数,确定任务执行轮数,并根据所述第一执行时长和所述定时器总槽位数,确定任务执行槽位;
根据所述任务执行轮数和所述任务执行槽位,创建对应的待处理任务。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二执行时长和所述定时器总槽位数,确定任务执行轮数,并根据所述第一执行时长和所述定时器总槽位数,确定任务执行槽位包括:
计算所述第二执行时长和所述定时器总槽位数的比值,将所述比值作为任务执行轮数,并根据所述第一执行时长对所述定时器总槽位数取模,得到任务执行槽位。
6.根据权利要求1所述的方法,其特征在于,所述根据所述任务执行轮数以及所述任务执行槽位,将所述待处理任务放置于定时器槽位对应的任务列表中包括:
根据所述任务执行轮数以及任务执行槽位,将所述待处理任务写入本地的缓冲队列;
基于预设时间窗口,从所述缓冲队列中获取所述待处理任务;
将所述待处理任务加载至定时器槽位对应的任务列表中。
7.根据权利要求1所述的方法,其特征在于,所述触发所述目标执行任务包括:
根据所述目标执行任务的目标任务标识确定对应的目标消息队列;
推送超时提示消息至所述目标消息队列。
8.一种任务触发装置,其特征在于,所述装置包括:
响应模块,用于响应任务处理请求,获取待处理任务对应的任务执行轮数以及任务执行槽位、并根据所述任务执行轮数和所述任务执行槽位创建对应的待处理任务;
放置模块,用于根据所述任务执行轮数以及所述任务执行槽位,将所述待处理任务放置于定时器槽位对应的任务列表中;
获取模块,用于当定时器运转至槽位节点时,获取当前槽位节点对应的目标任务列表;
遍历模块,用于遍历所述目标任务列表,确定所述目标任务列表中各任务对应的剩余运转轮数;
触发模块,用于查找所述目标任务列表中剩余运转轮数达到预设轮数的目标执行任务,触发所述目标执行任务。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202210137930.6A 2022-02-15 2022-02-15 任务触发方法、装置、计算机设备和存储介质 Pending CN114416324A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210137930.6A CN114416324A (zh) 2022-02-15 2022-02-15 任务触发方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210137930.6A CN114416324A (zh) 2022-02-15 2022-02-15 任务触发方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN114416324A true CN114416324A (zh) 2022-04-29

Family

ID=81262276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210137930.6A Pending CN114416324A (zh) 2022-02-15 2022-02-15 任务触发方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114416324A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115291762A (zh) * 2022-08-09 2022-11-04 康键信息技术(深圳)有限公司 业务项目的触发方法及装置、存储介质、计算机设备
CN115914668A (zh) * 2022-12-22 2023-04-04 湖南快乐阳光互动娱乐传媒有限公司 一种直播流处理方法及直播源站集群
CN116346918A (zh) * 2023-05-30 2023-06-27 天翼云科技有限公司 一种网络事件的性能瓶颈识别方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115291762A (zh) * 2022-08-09 2022-11-04 康键信息技术(深圳)有限公司 业务项目的触发方法及装置、存储介质、计算机设备
CN115914668A (zh) * 2022-12-22 2023-04-04 湖南快乐阳光互动娱乐传媒有限公司 一种直播流处理方法及直播源站集群
CN116346918A (zh) * 2023-05-30 2023-06-27 天翼云科技有限公司 一种网络事件的性能瓶颈识别方法及系统
CN116346918B (zh) * 2023-05-30 2023-10-10 天翼云科技有限公司 一种网络事件的性能瓶颈识别方法及系统

Similar Documents

Publication Publication Date Title
CN114416324A (zh) 任务触发方法、装置、计算机设备和存储介质
US10331483B1 (en) Scheduling data access jobs based on job priority and predicted execution time using historical execution data
US20180025065A1 (en) Efficient query processing using histograms in a columnar database
US11403314B2 (en) Cloud inference system
US11651212B2 (en) System and method for generating scores for predicting probabilities of task completion
CN113886382A (zh) 数据库任务处理方法、设备及存储介质
US10430115B2 (en) System and method for optimizing multiple packaging operations in a storage system
US9552298B2 (en) Smart pre-fetch for sequential access on BTree
US9405786B2 (en) System and method for database flow management
US9104712B2 (en) Parallelizing I/O processing of index insertions during insertion of data into a database
CN116339626A (zh) 数据处理方法、装置、计算机设备和存储介质
CN115357352A (zh) 分布式异步任务调度方法、装置、计算机设备、存储介质
CN104317820A (zh) 报表的统计方法和装置
CN116932779B (zh) 知识图谱的数据处理方法和装置
CN113975815B (zh) 任务转移方法、系统、装置、设备、存储介质
US12130867B2 (en) Managing pre-caching of results
CN118520146A (zh) 图数据库的属性索引创建方法、装置、设备和存储介质
US20240211516A1 (en) Managing pre-caching of results
CN114461659A (zh) 查杀方法、装置、计算机设备和存储介质
CN117350805A (zh) 一种订单管理方法及装置
CN118069700A (zh) 数据核验方法、装置、计算机设备、存储介质
CN117573325A (zh) 任务调度方法及装置、设备、存储介质
CN116226235A (zh) 数据查询方法、装置、计算机设备和存储介质
CN118152079A (zh) 任务编排调度方法、装置、计算机设备、存储介质和产品
CN116662451A (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