一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

物流单履约检测方法和延迟任务处理方法与流程

2022-03-26 06:19:23 来源:中国专利 TAG:


1.本技术涉及物流管理技术领域,具体涉及物流单履约检测方法和装置,延迟任务处理方法及装置,延迟队列系统,以及电子设备。


背景技术:

2.延迟队列系统是可在未来指定时间执行检测任务的系统。延迟队列系统,可广泛应用于各个领域,对相应领域具有完成时间要求的任务进行检测,检测任务是否按时完成,每秒要检测的任务数量可从0到一定量级。
3.一种典型的应用领域是物流单管理领域。物流行业对履约时效和异常单极其敏感,促使物流方要关注包裹的预计到达时间,且期望对超时履约的包裹有感知,以及时介入并解决问题。为此,通常采用延迟队列系统,根据时效计算包裹的超时时间。现有的延迟队列系统主要采用以下几种实现方式:基于redis有序集合的延迟队列实现,基于关系型数据库和定时调度的延迟队列实现,基于消息中间件的延迟队列实现。随着网上购物的普及,物流管理平台的多个产品线产生的物流单已高达每秒万级别的高并发量,由于物流领域的特殊检测规则,会导致延迟队列系统需要负责每秒千万级别物流单履约检测任务和亿级别的物流单超时检测计算。
4.然而,在实现本发明过程中,发明人发现在物流单并发量急剧增大的情况下,现有的延迟队列系统至少存在如下问题:只支持每秒千级别的物流单履约检测请求数,不支持物流单并发量急剧增大情况下的单秒万级别的检测请求数;同一时刻触发任务量级只达到万级别,无法支持物流单并发量急剧增大情况下的单秒集中百万甚至千万个触发任务,因此在物流单并发量急剧增大情况下,无法按时检测物流单的货品是否已在预计时间前履约完成,从而无法及时获知未按时履约的物流单。综上所述,在物流单并发量大的情况下,现有延时任务系统存在性能较差的问题。


技术实现要素:

5.本技术提供物流单履约检测方法,以解决现有技术在物流单并发量大的情况下存在的检测性能较差的问题。本技术另外提供物流单履约检测装置,延迟任务处理方法及装置,延迟队列系统,以及电子设备。
6.本技术提供一种物流单履约检测方法,包括:
7.在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的物流单履约检测任务,所述检测任务包括检测任务序列号;
8.为物流单分配与其目标履约时间对应的未占用的检测任务序列号,将物流单信息存储至与所述未占用的检测任务序列号对应的检测任务中;
9.根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
10.执行读取到的检测任务中与物流单对应的检测任务,以检测物流单是否按时履
约。
11.可选的,还包括:
12.根据物流单检测规则,将不同时刻接收到的多个物流单的目标履约时间设置为同一时间。
13.可选的,通过流式计算服务,接收物流单检测请求;
14.所述为物流单分配与其目标履约时间对应的未占用的检测任务序列号,包括:
15.将秒级触发时间的已占用的检测任务序列号存储至缓存;
16.根据缓存中的已占用的检测任务序列号,确定所述未占用的检测任务序列号;
17.所述执行读取到的检测任务中与物流单对应的检测任务,包括:
18.通过流式计算服务,执行秒级触发时间内与物流单对应的检测任务。
19.可选的,所述为物流单分配与其目标履约时间对应的未占用的检测任务序列号,包括:
20.若在当前秒级时间内检测任务的产生顺序号大于秒级处理数量阈值,则根据下一秒时刻和重新计数的顺序号,确定所述未占用的检测任务序列号。
21.可选的,所述根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务记录,包括:
22.通过秒级的定时调度器,根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务记录。
23.可选的,所述目标履约时间相对所述检测任务的生成时间的时长包括:月份级时长,年份级时长。
24.本技术还提供一种订单超时支付检测方法,包括:
25.在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的订单超时支付检测任务,所述检测任务包括检测任务序列号;
26.为订单分配与其目标支付时间对应的未占用的检测任务序列号,将订单信息存储至与所述未占用的检测任务序列号对应的检测任务中;
27.根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
28.执行读取到的检测任务中与订单对应的检测任务,以检测订单是否按时支付。
29.本技术还提供一种订单超时接单检测方法,包括:
30.在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的订单超时接单检测任务,所述检测任务包括检测任务序列号;
31.为订单分配与其目标支付时间对应的未占用的检测任务序列号,将订单信息存储至与所述未占用的检测任务序列号对应的检测任务中;
32.根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
33.执行读取到的检测任务中与订单对应的检测任务,以检测订单是否按时接单。
34.本技术还提供一种延迟任务处理方法,包括:
35.在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的检测任务,所述检测任务包括检测任务序列号;
36.为待执行任务分配与其目标完成时间对应的未占用的检测任务序列号,将待执行任务信息存储至与所述未占用的检测任务序列号对应的检测任务中;
37.根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
38.执行读取到的检测任务中与待执行任务对应的检测任务,以检测待执行任务是否按时完成。
39.本技术还提供一种延迟任务处理装置,包括:
40.检测任务存储单元,用于在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的检测任务,所述检测任务包括检测任务序列号;
41.任务序列号分配单元,用于为待执行任务分配与其目标完成时间对应的未占用的检测任务序列号,将待执行任务信息存储至与所述未占用的检测任务序列号对应的检测任务中;
42.检测任务读取单元,用于根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
43.检测任务执行单元,用于执行读取到的检测任务中与待执行任务对应的检测任务,以检测待执行任务是否按时完成。
44.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各种方法。
45.本技术还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种方法。
46.与现有技术相比,本技术具有以下优点:
47.本技术实施例提供的物流单履约检测方法,采用稀疏存储方式存储每秒内的大量检测任务,即使没有检测任务的时刻也会产生检测任务记录,使得无需通过多次数据库查询,即可快速确定每秒检测任务的起始位置和结束位置,同时结合非关系型数据库支持的数据量不受内存限制的特性、及整块数据读取特性,能够快速读取到秒内千万级检测任务,即以检测任务的存储空间换取检测任务的读取时间,优化以秒为单位的检测任务批处理,能够以秒为单位集中触发千万个检测任务;因此,可以有效提升物流单并发量大情况下的物流单履约检测性能,在检测任务数据量指标上得到有效提升。此外,这种处理方式充分考虑了检测任务的容量和持久化存储问题,因此支持离当前时间较远(如数个月)的检测任务触发,对未来时间的支持无上限。
48.本技术实施例提供的延迟任务处理方法,通过对每秒内的大量检测任务采用稀疏存储方式,即使没有检测任务的时刻也会产生检测任务记录,使得无需通过多次数据库查询,即可快速确定每秒检测任务的起始位置和结束位置,同时结合非关系型数据库支持的数据量不受内存限制的特性、及整块数据读取特性,能够快速读取到秒内千万级检测任务,即以检测任务的存储空间换取检测任务的读取时间,优化以秒为单位的检测任务批处理,能够以秒为单位集中触发千万个检测任务;因此,在具有完成时间要求的待执行任务并发
量大的情况下,可以有效提升检测待执行任务检测是否按时完成的检测性能,在检测任务数据量指标上得到有效提升。此外,这种处理方式充分考虑了检测任务的容量和持久化存储问题,因此支持离当前时间较远(如数个月)的检测任务触发,对未来时间的支持无上限。
附图说明
49.图1本技术提供的物流单履约检测方法的实施例的流程示意图;
50.图2本技术提供的物流单履约检测方法的实施例的应用场景示意图;
51.图3本技术提供的物流单履约检测方法的实施例的设备交互示意图;
52.图4本技术提供的物流单履约检测系统的实施例的具体实施方式示意图。
具体实施方式
53.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
54.在本技术中,提供了物流单履约检测方法和装置,延迟任务处理方法及装置,延迟队列系统,以及电子设备。在下面的实施例中逐一对各种方案进行详细说明。
55.第一实施例
56.本技术提供一种物流单履约检测方法,所述方法的执行主体包括但不限于延迟队列系统,也可以是能够实现所述方法的任意设备。
57.请参考图1,其为本技术的物流单履约检测方法的实施例的流程示意图。在本实施例中,所述方法可包括如下步骤:
58.步骤s101:在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的物流单履约检测任务,所述检测任务包括检测任务序列号。
59.为了便于直观理解本技术实施例提供的物流单履约检测方法,下面先对其应用场景进行简要说明。请参考图2,其为本技术提供的方法实施例的应用场景示意图。在本实施例中,所述方法应用在物流单履约检测系统中。该系统通过物流管理平台可产生单秒万级别及以上的物流单;通过延时任务处理服务端对这些物流单是否按时完成进行检测,可将检测出的未按时完成的异常物流单发送给物流管理平台,物流管理平台向管理用户的客户端发送未按时完成的物流单的报警信息,使得管理用户可及时获知未按时完成的物流单,以便及时介入解决问题。具体实施时,可在物流管理平台的服务端中部署物流单生产装置,在延时任务处理的服务端中部署物流单履约检测装置。
60.随着网上购物的普及,物流管理平台的多个产品线产生的物流单数量可高达每秒万级别。例如,在电商行业中,大促往往占据较大的流量,具有包裹集中、时间集中两个特点,大促产生的物流单数量可高达每秒万级别。
61.所述物流单履约检测装置执行所述方法,负责每秒千万级别的物流单履约检测任务和亿级别的物流单履约检测计算。物流场景具有特殊的检测规则,以订单出库检测为例,要求每天18:00前通知仓库打包的订单,在当天20:00前必须出库完成,这就意味着一天内多个小时的订单全部集中在20:00点执行出库检测,这就是每秒产生的万级别的物流单会导致每秒存在千万级别的物流单履约检测任务的原因,因此需要支持同一时刻产生大量物
流单超时检测任务。
62.如图3所示,所述物流单履约检测装置,用于在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的物流单履约检测任务,所述检测任务包括检测任务序列号,所述序列号包括秒级触发时间和秒内编号;所述物流单生产装置用于生成物流单信息,向物流单履约检测装置发送物流单检测请求,将物流单信息发送至物流单履约检测装置;所述物流单履约检测装置,用于为物流单分配与其目标履约时间对应的未占用的检测任务序列号,将物流单信息存储至与所述未占用的检测任务序列号对应的检测任务中;根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;执行读取到的检测任务中与物流单对应的检测任务,以检测物流单是否按时履约。物流单履约检测装置,还可用于将未按时完成的物流单发送至异常物流单处理装置,异常物流单处理装置可将异常物流单展示给用户查看。
63.所述物流单,可以是物流链路中物流子环节的物流单,如跨境物流链路中从国外到国内的干线运输物流单。所述物流单,也可以是直接面向消费者的网上购物的配送单,如外卖订单、淘宝订单等。所述物流单信息,包括物流单标识和目标履约时间,此外还可包括配送地址等常见物流信息。所述目标履约时间,可以是包裹配送时间,也可以是包裹入库到出库时间、清关完成时间等。所述目标履约时间,可以是分钟级的时间,也可以是小时级的时间,还可以是其它时间单位的时间。
64.本技术实施例提供的方法,可将接收到的每一条检测请求转换成检测任务。所述检测任务,是针对物流单的检测任务,检测物流单在预计履约时间(目标履约时间)是否已完成。在本实施例中,将所述检测任务存储在非关系型数据库中。所述非关系型数据库,可以是分布式的、面向列的数据库,又可称为大数据存储引擎、结构化数据的分布式存储系统,如选择支持大吞吐、大数据的hbase数据库。存储在该数据库中的检测任务可包括键值对,将所述检测任务序列号(检测任务标识)作为键,将所述物流单信息(正文)作为值。所述检测任务标识用于查询检测任务,所述物流单信息用于执行检测任务。
65.在物流场景中,每分钟要执行巨大数量的物流单履约检测任务,为了能有效地执行这些检测任务,通常采用以秒为单位的检测任务批处理方式,集中触发一秒内的检测任务,因此,物流单履约检测任务的触发时间为秒级触发时间。
66.由于一秒内包括多个检测任务,因此所述检测任务序列号包括秒级触发时间和秒内编号。其中,秒级触发时间表示任务在第几秒触发,可以是秒级时刻的时间戳,可用于在达到该秒级时间时,从数据库中读取该秒的所有检测任务。秒内编号表示检测任务在这一秒内排第几位,即可确定这一检测任务的位置,此外还使得一秒内的所有检测任务标识均是唯一的。秒内第一个编号表示这一秒内所有检测任务的起始位置,秒内最后一个编号表示这一秒内所有检测任务的结束位置。
67.所述秒级触发时间,可根据物流单的目标履约时间确定。所述物流单履约检测装置,对目标履约时间为分钟级及以上时间的物流单履约检测任务不敏感,并不要求精确在某秒触发物流单履约检测任务。也就是说,物流单履约检测任务可与其目标履约时间内的任意秒级触发时间对应,只要能在目标履约时间内(如2021/10/15 15:30)读取到该检测任务以便执行即可。
68.在本实施例中,在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的物流单履约检测任务。也就是说,在数据库中一秒对应的检测任务记录的数量是固定数量。所述秒级处理数量阈值,可以根据系统每秒可集中读取的检测任务数量级进行设置,如每秒可读取一千万个检测任务,则秒级处理数量阈值为一千万。本技术实施例提供的方法,使得一秒内的检测任务数量是固定数量,因此可以直接确定这一秒内所有检测任务的起始位置和结束位置,无需逐条读取检测任务序列号来确定是否读取完该秒内的所有检测任务。
69.可见,本技术实施例提供的系统,在考量检测任务触发时间的存储结构时,采用的是预置检测任务序列号(键,key)的方式。在这种存储方式中,key空间是稀疏的,即使没有任务,也会对该key范围进行扫描。这样,会导致在检测任务较稀疏的情况下浪费计算资源,且需要管理key的占用情况。但是,在物流单并发量大的场景中,检测任务在每一秒的分布都较为密集,通过批处理优化使得可以处理大量物流单检测任务。表1示出了本实施例中的检测任务数据。
70.检测任务标识物流单标识1634567172 00000000ax02154631651634567172 00000001ax02154631651634567172 00000002asf4664646561634567172 00000003645665116316
…ꢀ
1634567172999999996411668894361634567173 000000001891561651661634567173 00000001空1634567173 00000002空
…ꢀ
163456717399999999空163456717400000000444215463165163456717400000001545566464656163456717400000002789665116316
…ꢀ
71.表1、本实施例中的检测任务数据
72.由表1可见,检测任务序列号包括秒级触发时间的时间戳和秒内编号。每秒内检测任务的起始位置和结束位置隐藏在检测任务序列号中,起始位置对应顺序号00000000,终止位置对应顺序号99999999,无需更多计算就能直接确定起始位置和结束位置,这样就可以快速读取到该秒对应的整块数据,支持单秒集中千万个触发任务。
73.而在另一种实现方式中,采用redis的有序集合存储检测任务触发时间,redis的有序集合使用的是顺序式存储,在这种存储方式中,key空间是紧凑的,没有延时检测任务的时刻不会产生key。这种实现方式虽然可减少存储空间或者减少处理耗时,但由于无法做批处理优化,其代价往往是增加处理耗时。表2示出了另一种实现方式的检测任务数据。
74.检测任务标识物流单标识
1634567172 00000000ax02154631651634567172 00000001ax02154631651634567172 00000002asf4664646561634567172 00000003645665116316
…ꢀ
1634567172010000006411668894361634567173 000000001891561651661634567173 000000015644646466661634567173 00000002444456775757
…ꢀ
163456717300000100785778575757163456717400000000444215463165163456717400000001545566464656163456717400000002789665116316
…ꢀ
75.表2、现有技术中的检测任务数据
76.由表2可见,对比另一种实现方式采用的紧凑型存储方案,假设1634567172这一秒存储了100万个检测任务,秒内编号为1~1000000,在到达1634567172这一秒时,要确定这一秒有哪些检测任务,就需要对1到1000000每一个数据进行检查是不是属于这一秒,即:为了确定取多大范围的检测任务数据需要频繁读取数据库,一秒100万条数据可能要读100万次,频繁读取数据库导致无法支持单秒集中千万个触发任务。
77.步骤s103:为物流单分配与其目标履约时间对应的未占用的检测任务序列号,将物流单信息存储至与所述未占用的检测任务序列号对应的检测任务中。
78.所述方法采用预置检测任务序列号的方式,在接收到物流单检测请求后,可为该物流单分配与其目标履约时间对应的未占用的检测任务序列号,将物流单信息存储至与所述未占用的检测任务序列号对应的检测任务中。
79.在本实施例中,物流单履约检测装置在一秒内会接收高并发量的万级别物流单,相应的可产生千万级别的检测任务,可按照这些检测任务在一秒内的产生顺序对其进行编号,即检测任务序列号中的秒内编号为检测任务在秒级时间内的产生顺序号。
80.例如,物流单a的目标履约时间为2021/10/18 15:28分,接收到该物流单a的时间为2021/10/15 5:15:23,且为该秒内接收到的第一个物流单,设置一秒内可检测一千万个物流单的履约情况,即秒级处理数量阈值为一千万,则检测任务序列号可以是:202110181528 23 00000001。其中,202110181528表示目标履约时间,23表示该分钟内的第23秒,00000001表示该检测任务是2021/10/18 15:28分第23秒内的第一个检测任务。
81.在本实施例中,所述产生顺序号小于或者等于秒级处理数量阈值;所述检测任务序列号可采用如下方式分配:若在当前秒级时间内检测任务的产生顺序号大于秒级处理数量阈值,则根据下一秒时刻和重新计数的顺序号,确定所述未占用的检测任务标识。这样,在当前秒的序列号占满的情况下向下一秒顺移,可确保每秒检测任务不超过数量阈值,确保快速读取到一秒内的所有任务,从而确保集中触发每秒千万级检测任务。
82.在一个示例中,步骤s203可包括如下子步骤:将秒级触发时间的已占用的检测任务序列号存储至缓存,如redis缓存系统等;根据缓存中的已占用的检测任务序列号,确定所述未占用的检测任务序列号。这样,可缓存秒内序列号的使用状况,通过缓存已使用的序列号的方式记录了当前秒剩余空间,既简化了检测任务序列号的确定方式,有效提升检测任务序列号的确定速度,又可确保不会出现重复占用序列号的情况,从而保证高并发情况下的物流单履约检测性能。
83.在本实施例中,所述方法将每一条物流单接收消息形成“检测任务序列号 物流单信息”形式的检测任务,检测任务序列号作为大数据存储引擎(如hbase)的key存入,物流单信息作为大数据存储引擎的存储内容。在检测任务序列号的生成方面,记录了该物流单未来触发检测的时间,且稀疏存储结构符合hbase查询结构,以便于范围查询,且同一秒可存储的检测任务数量有限,因而可记录该秒已占用序列号数量,并在这一秒序列号占满后顺延至后一秒。为此,所述方法可使用redis记录已占用序列号的情况,确保不会出现重复占用和占满的情况。
84.在本实施例中,所述目标履约时间相对所述检测任务的生成时间的延迟处理时长,可以是月份级时长,如物流单的目标履约时间在三个月后等。该延迟处理时长,也可以是年份级时长,如物流单的目标履约时间在一年后等。这样,可支持履约时间较远的物流单,满足物流管理领域的物流单较长时间才能完成履约的应用需求。例如,物流的商家备货场景中,干线运输往往花费数周甚至数月的时间,因此支持的未来时间应有较长的跨度。
85.本技术实施例提供的方法,通过在检测任务序列号中包括检测任务秒级触发时间和检测任务在秒级时间内的产生顺序号,并将这种复合结构的检测任务标识存储在非关系型数据库中,以及为每秒生成固定数量(秒级处理数量阈值)的检测任务,可以为支持以秒为单位集中处理千万个检测任务的批处理优化提供数据基础。
86.至此,对物流单履约检测任务的生成方式进行了说明。下面对检测任务的触发执行方式进行说明。
87.步骤s105:根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务。
88.本技术实施例提供的方法,可在每秒检查目标履约时间为当前分钟时间的物流单是否已经按时完成。为了能够在物流单并发量大情况下,仍能及时检测每秒千万级的物流单是否按时完成,所述方法在检测物流单履约情况时,从非关系型数据库中直接整块读取与当前秒级时刻对应的固定数量的检测任务,这样可以快速读取到秒内千万级别的检测任务,其中可包括物流单信息为空的检测任务。这样,可在每秒读取触发时间为当前秒时刻的0到多个检测任务,以秒为单位集中触发千万个检测任务。
89.如上所述,每秒内检测任务的起始位置和结束位置可隐藏在检测任务序列号中,比如起始位置对应顺序号00000000,终止位置对应顺序号99999999,无需更多计算就能直接确定起始位置和结束位置,这样就可以快速读取到该秒对应的整块数据,支持单秒集中千万个触发任务。
90.在一个示例中,步骤s105可采用如下方式实现:通过秒级的定时调度器,根据与目标秒级触发时间对应的检测任务起始位置和终止位置,,从非关系型数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务记录。这样,可确保了不会漏掉
任何一秒的检测任务,有效提升物流单履约检测的准确度。
91.具体实施时,可使用分布式任务调度服务(如schedulerx)触发每秒脉冲,可通过流式消费服务(如blink)接收脉冲并启动扫描。其原理是经过时间流逝,物流单生产端(物流单生产装置)生产的物流单消息的“未来时”在当前可能已经变成了“现在时”。直至该脉冲时刻前的所有检测任务序列号都会被取出来,并被发送到消息处理端,这样的处理确保了不会漏掉任何一秒。
92.步骤s107:执行读取到的检测任务中与物流单对应的检测任务,以检测物流单是否按时履约。
93.所述物流单履约检测装置在获取到一秒内的千万个检测任务后,就可以执行这些检测任务,及时检测出其中没有按时履约的物流单。在本实施例提供的方法中,从非关系型数据库中读取到的一秒内的检测任务中包括与物流单对应的检测任务,还包括物流单为空的检测任务,只需执行与物流单对应的检测任务即可。
94.在一个示例中,所述物流单履约检测装置可通过流式计算服务(如blink流式服务等),接收物流单检测请求;相应的,可通过流式计算服务,执行一秒内的检测任务。这样,可通过服务器集群以分布式方式,并行检测单秒触发的千万个物流单,支持动态调整性能参数,因此,可以有效提升并发量指标。
95.如图4所示,在本实施例中,物流管理平台(物流单生产装置)通过消息中间件(如metaq)向物流单履约检测装置发送大量并发的物流单检测请求。物流单履约检测装置通过流式计算服务(如blink),接收大量并发的物流单,生成与物流单对应的检测任务,并将每秒千万级的检测任务写入大数据存储引擎(如hbase)。其中,检测任务序列号为非关系型数据库中的键,物流单信息为非关系型数据库中的值,检测任务序列号包括物流单履约检测任务的秒级触发时间和产生顺序号。再通过定时调度器(如schedulerx定时调度等)产生每秒脉冲触发,blink流式消费服务将会接收脉冲并启动扫描,根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务。最后,通过流式计算服务执行检测任务。经实验证明,这种配置可支持在6分钟内消费完压到同一秒的1千万数据,并保证无一丢失。这样,可实现基于大数据存储引擎和流式计算服务,实现支持大并发量、大数据量、支持高单时刻触发任务量的延迟队列,有效提升物流单履约检测性能。
96.从上述实施例可见,本技术实施例提供的物流单履约检测方法,通过对每秒内的大量检测任务采用稀疏存储方式,即使没有检测任务的时刻也会产生检测任务记录,使得无需通过多次数据库查询,即可快速确定每秒检测任务的起始位置和结束位置,同时结合非关系型数据库支持的数据量不受内存限制的特性、及整块数据读取特性,能够快速读取到秒内千万级检测任务,即以检测任务的存储空间换取检测任务的读取时间,优化以秒为单位的检测任务批处理,能够以秒为单位集中触发千万个检测任务;因此,可以有效提升物流单并发量大情况下的物流单履约检测性能,在检测任务数据量指标上得到有效提升。此外,这种处理方式充分考虑了检测任务的容量和持久化存储问题,因此支持离当前时间较远(如数个月)的检测任务触发,对未来时间的支持无上限。
97.第二实施例
98.在上述的实施例中,提供了一种物流单履约检测方法,与之相对应的,本技术还提
供一种物流单履约检测装置。该装置是与上述方法的实施例相对应。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
99.本技术提供一种物流单履约检测装置,包括:
100.检测任务存储单元,用于在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的物流单履约检测任务,所述检测任务包括检测任务序列号;
101.任务序列号分配单元,用于为物流单分配与其目标履约时间对应的未占用的检测任务序列号,将物流单信息存储至与所述未占用的检测任务序列号对应的检测任务中;
102.检测任务读取单元,用于根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
103.检测任务执行单元,用于执行读取到的检测任务中与物流单对应的检测任务,以检测物流单是否按时履约。
104.第三实施例
105.在上述的实施例中,提供了一种物流单履约检测方法,与之相对应的,本技术还提供一种延迟任务处理方法,延迟任务处理方法不限于具体的应用场景。该方法是与上述方法的实施例相对应。由于本实施例基本相似于方法实施例一,所以描述得比较简单,相关之处参见方法实施例一的部分说明即可。下述描述的方法实施例仅仅是示意性的。
106.在本实施例中,所述延迟任务处理方法可包括如下步骤:
107.步骤1:在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的检测任务,所述检测任务包括检测任务序列号;
108.步骤2:为待执行任务分配与其目标完成时间对应的未占用的检测任务序列号,将待执行任务信息存储至与所述未占用的检测任务序列号对应的检测任务中;
109.步骤3:根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
110.步骤4:执行读取到的检测任务中与待执行任务对应的检测任务,以检测待执行任务是否按时完成。
111.从上述实施例可见,本技术实施例提供的延迟任务处理方法,通过对每秒内的大量检测任务采用稀疏存储方式,即使没有检测任务的时刻也会产生检测任务记录,使得无需通过多次数据库查询,即可快速确定每秒检测任务的起始位置和结束位置,同时结合非关系型数据库支持的数据量不受内存限制的特性、及整块数据读取特性,能够快速读取到秒内千万级检测任务,即以检测任务的存储空间换取检测任务的读取时间,优化以秒为单位的检测任务批处理,能够以秒为单位集中触发千万个检测任务;因此,在具有完成时间要求的待执行任务并发量大的情况下,可以有效提升检测待执行任务检测是否按时完成的检测性能,在检测任务数据量指标上得到有效提升。此外,这种处理方式充分考虑了检测任务的容量和持久化存储问题,因此支持离当前时间较远(如数个月)的检测任务触发,对未来时间的支持无上限。
112.第四实施例
113.在上述的实施例中,提供了一种延迟任务处理方法,与之相对应的,本技术还提供
一种延迟任务处理装置。该装置是与上述方法的实施例相对应。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
114.本技术提供一种延迟任务处理装置,包括:
115.检测任务存储单元,用于在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的检测任务,所述检测任务包括检测任务序列号;
116.任务序列号分配单元,用于为待执行任务分配与其目标完成时间对应的未占用的检测任务序列号,将待执行任务信息存储至与所述未占用的检测任务序列号对应的检测任务中;
117.检测任务读取单元,用于根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
118.检测任务执行单元,用于执行读取到的检测任务中与待执行任务对应的检测任务,以检测待执行任务是否按时完成。
119.第五实施例
120.在上述的实施例中,提供了延迟任务处理方法,与之相对应的,本技术还提供一种电子设备。该装置是与上述方法的实施例相对应。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
121.本实施例的一种电子设备,该电子设备包括:处理器和存储器;存储器,用于存储实现根据上述任一项方法的程序,该设备通电并通过所述处理器运行该方法的程序。
122.第六实施例
123.在上述的实施例中,提供了延迟任务处理方法,与之相对应的,本技术还提供一种延迟队列系统。该系统是与上述方法的实施例相对应。由于系统实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的系统实施例仅仅是示意性的。
124.本实施例的一种延迟队列系统,包括:任务生产装置和延迟任务处理装置。
125.其中,所述任务生产装置用于生成具有完成时间要求的待执行任务,将所述待执行任务发送至延迟任务处理装置。所述延迟任务处理装置如上述实施例五所述,此处不再赘述。
126.所述任务生产装置可部署任务生成服务端,可产生单秒万级别及以上的具有完成时间要求的任务。所述任务生产装置可部署在延迟任务处理服务端,可支持单秒万级别的任务完成检测请求数,支持单秒集中触发千万个检测任务,检测待执行任务是否已在预计时间前完成,及时获知未按时完成的任务。
127.如图2所示,将所述任务生产装置部署在物理管理平台,可产生单秒万级别及以上的物流单;相应的,通过延迟任务处理服务端可及时检测出未按时履约的物流单,以便及时介入并解决问题。
128.从上述实施例可见,本技术实施例提供的延迟队列系统,通过对每秒内的大量检测任务采用稀疏存储方式,即使没有检测任务的时刻也会产生检测任务记录,使得无需通
过多次数据库查询,即可快速确定每秒检测任务的起始位置和结束位置,同时结合非关系型数据库支持的数据量不受内存限制的特性、及整块数据读取特性,能够快速读取到秒内千万级检测任务,即以检测任务的存储空间换取检测任务的读取时间,优化以秒为单位的检测任务批处理,能够以秒为单位集中触发千万个检测任务;因此,在具有完成时间要求的待执行任务并发量大的情况下,可以有效提升检测待执行任务检测是否按时完成的检测性能,在检测任务数据量指标上得到有效提升。此外,这种处理方式充分考虑了检测任务的容量和持久化存储问题,因此支持离当前时间较远(如数个月)的检测任务触发,对未来时间的支持无上限。
129.第七实施例
130.在上述的实施例中,提供了一种物流单履约检测方法,与之相对应的,本技术还提供一种订单超时支付检测方法。该方法是与上述方法的实施例相对应。由于本实施例基本相似于方法实施例一,所以描述得比较简单,相关之处参见方法实施例一的部分说明即可。下述描述的方法实施例仅仅是示意性的。
131.在本实施例中,所述订单超时支付检测方法可包括如下步骤:
132.步骤1:在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的订单超时支付检测任务,所述检测任务包括检测任务序列号;
133.步骤2:为订单分配与其目标支付时间对应的未占用的检测任务序列号,将订单信息存储至与所述未占用的检测任务序列号对应的检测任务中;
134.步骤3:根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
135.步骤4:执行读取到的检测任务中与订单对应的检测任务,以检测订单是否按时支付。
136.所述订单,可以是电商平台产生的订单。为了能有效销售商品,通常要求订单在一定时限内支付,如在1小时内支付完毕,如果超时支付,可联系买家用户提醒其尽早支付,如果迟迟不能支付,可释放该订单占用的商品库存。采用本技术实施例提供的方法,可快速检测出每秒千万级订单是否超时支付。
137.第八实施例
138.在上述的实施例中,提供了一种物流单履约检测方法,与之相对应的,本技术还提供一种订单超时支付检测方法。该方法是与上述方法的实施例相对应。由于本实施例基本相似于方法实施例一,所以描述得比较简单,相关之处参见方法实施例一的部分说明即可。下述描述的方法实施例仅仅是示意性的。
139.在本实施例中,所述订单超时支付检测方法可包括如下步骤:
140.步骤1:在非关系型数据库中存储与秒级触发时间对应的数量为秒级处理数量阈值的订单超时接单检测任务,所述检测任务包括检测任务序列号;
141.步骤2:为订单分配与其目标支付时间对应的未占用的检测任务序列号,将订单信息存储至与所述未占用的检测任务序列号对应的检测任务中;
142.步骤3:根据与目标秒级触发时间对应的检测任务起始位置和终止位置,从数据库中读取与目标秒级触发时间对应的数量为秒级处理数量阈值的检测任务;
143.步骤4:执行读取到的检测任务中与订单对应的检测任务,以检测订单是否按时接
单。
144.所述订单可以是外卖平台产生的点餐订单,线下店铺的商家需要及时确认外卖平台产生的订单。为了能按时将餐品送达至买家处,平台通常要求商家在一定时限内确认接收到订单,如在15分钟内接单,如果商家超时接单,可联系线下店铺提醒其尽早接单,避免不能按时将餐品送达买家用户处。采用本技术实施例提供的方法,可快速检测出每秒千万级订单是否超时接单。
145.本技术虽然以较佳实施例公开如上,但其并不是用来限定本技术,任何本领域技术人员在不脱离本技术的精神和范围内,都可以做出可能的变动和修改,因此本技术的保护范围应当以本技术权利要求所界定的范围为准。
146.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
147.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
148.1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
149.2、本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献