CN111901224A - 延时消息加载方法、装置、设备及计算机可读存储介质 - Google Patents
延时消息加载方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111901224A CN111901224A CN202010734028.3A CN202010734028A CN111901224A CN 111901224 A CN111901224 A CN 111901224A CN 202010734028 A CN202010734028 A CN 202010734028A CN 111901224 A CN111901224 A CN 111901224A
- Authority
- CN
- China
- Prior art keywords
- message
- delay
- delay message
- target
- loading
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 85
- 230000003111 delayed effect Effects 0.000 title claims description 33
- 238000000034 method Methods 0.000 title claims description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 24
- 238000012423 maintenance Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000002265 prevention Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及大数据技术领域,揭露了一种延时消息加载方法,包括:获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息;对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中;查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。本发明还涉及区块链技术,所述延时消息可部署于区块链节点中。本发明可以在于提高延时消息加载的时效性。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种延时消息加载的方法、装置、电子设备及计算机可读存储介质。
背景技术
延时消息指的是消息发送后并不立即对用户可见,而是在指定的时间投递给用户的消息。延时消息加载应用于“在一段时间之后,完成一个工作任务”的业务需求场景中。例如,其中一个业务需求场景为:一个网上商城系统中,在用户下单后没有立即支付,则所述商城系统会生成一个延时消息,并在用户下单时间开始的预设时间间隔后加载所述延时消息提醒用户在规定时间内还未支付,则商城订单将被取消。通过延时消息加载的方式可以很好的减轻网上商城系统的后台数据库的压力。
目前延时消息的加载主要通过数据库轮询的方式实现,即启动一个cron定时任务加载延时消息,但是通过数据库轮询加载延时消息会存在如下弊端:需要在规定时间内轮询一次延时消息,导致延时消息的加载时效性变差,同时在延时消息任务量大的情况下,需要耗费大量的系统维护成本。
发明内容
本发明提供一种延时消息加载的方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高延时消息加载的时效性以及降低系统维护成本。
为实现上述目的,本发明提供的一种延时消息加载方法,包括:
获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息;
对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中;
查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
可选地,所述通过定时器对所述延时消息进行延时到期监控,包括:
获取所述延时消息的延时时间,基于所述定时器创建定时任务服务,根据所述延时时间,利用所述定时任务服务监控所述延时消息的到期时间。
可选地,所述对所述初始延时消息进行防重处理,得到目标延时消息,包括:
计算所述初始延时消息的唯一标识,利用所述唯一标识生成所述初始延时消息的分布式锁;
根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在;
若重复存在,则删除任意一个初始延时消息后生成所述目标延时消息;
若没有重复存在,则生成所述目标延时消息。
可选地,所述执行所述目标延时消息的加载之后,该方法还包括:
获取所述目标延时消息的版本信息,根据所述版本信息,过滤所述预设消息服务器中对应的延时消息。
可选地,所述版本信息包括:唯一标识、版本号以及序列号。
为了解决上述问题,本发明还提供一种延时消息加载装置,所述装置包括:
监控模块,用于获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息;
防重模块,用于对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中;
加载模块,用于查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
可选地,所述监控模块具体用于:
获取所述延时消息的延时时间,基于所述定时器创建定时任务服务,根据所述延时时间,利用所述定时任务服务监控所述延时消息的到期时间。
可选地,所述防重模块具体用于:
计算所述初始延时消息的唯一标识,利用所述唯一标识生成所述初始延时消息的分布式锁;
根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在;
若重复存在,则删除任意一个初始延时消息后生成所述目标延时消息;
若没有重复存在,则生成所述目标延时消息。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述中所述的延时消息加载方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述中所述的延时消息加载方法。
本发明实施例将获取的延时消息传输至预设消息服务器中,通过所述预设消息服务器中的定时器对传输的所述延时消息进行延时到期监控,可以很好的提高后续延时消息的加载时效,并选取延时到期的延时消息作为初始延时消息;其次,本发明实施例利用预设的分布式锁对所述初始延时消息进行防重处理,得到目标延时消息,避免了延时消息被重复消费的问题,释放了系统资源,从而可以降低系统维护成本,进一步地,将所述目标延时消息存入缓存中,可以提高延时消息的加载速度以及提高系统查询性能;进一步地,本发明实施例根据所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载,基于所述发送记录可以识别出所述目标延时消息是否为首次执行,以避免所述目标延时消息过了执行时间,继续进行目标延时消息加载的操作。因此,本发明提出的一种延时消息加载方法、装置、电子设备以及计算机可读存储介质可以提高延时消息加载的时效性以及降低系统维护成本。
附图说明
图1为本发明第一实施例提供的延时消息加载方法的流程示意图;
图2为本发明第一实施例提供的延时消息加载装置的模块示意图;
图3为本发明第一实施例提供的实现延时消息加载方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将整合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供的延时消息加载方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述延时消息加载方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
本发明提供一种延时消息加载的方法。参照图1所示,为本发明一实施例提供的延时消息加载方法的流程示意图。在本实施例中,所述延时消息加载的方法包括:
S1、获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息。
在本发明的至少一个实施例中,所述延时消息为生产者将生产的消息发送到服务端,但并不期望该消息立马投递,而是延迟一定时间后才投递到消费者的消息。例如,通信营业商在月底统计了用户当月的账单,但并没有将该用户当月的账单立刻发送至该用户,而是延迟至下个月的月初将该账单发送至用户,于是,所述账单即为本发明中的延时消息。由于基于不同业务场景可以生成不同的延时消息,因此本发明中不限定延时消息所包含的消息类型。其中,需要强调的是,为进一步保证上述延时消息的私密和安全性,上述延时消息还可以存储于一区块链的节点中。
一个可选实施例中,所述预设消息服务器包括RocketMQ消息服务器(简称MQ消息服务器),用于支持消息发送与消息订阅。本发明实施例将所述延时消息传输至所述预设消息服务器的临时主题中。其中,所述临时主题又称临时topic,指的是在所述预设消息服务器中临时创建的存储区域,其用于存储所述延时消息,方便与非延时消息区分存储位置。
一个可选实施例中,所述定时器可以是所述MQ消息服务器中的定时器,通过SQL语句编译生成。
进一步地,本发明较佳实施例中,所述通过定时器对所述延时消息进行延时到期监控,包括:
获取所述延时消息的延时时间,基于所述定时器创建定时任务服务,根据所述延时时间,利用所述定时任务服务监控所述延时消息的到期时间。
可选的,所述定时任务服务为ScheduleMessageService。
本发明通过创建定时任务服务实现延时消息的延时到期监控,可以更好的提高后续延时消息的加载时效。
S2、对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中。
由于在进行延时消息加载时,由于会出现网络不稳定的情况或MQ消息服务器宕机等现象,从而会产生后续消费者订阅相同延时消息,例如,在发送上月用户的通信账单时,由于MQ消息服务器出现宕机了,该通信账单无法直接被用户订阅,当MQ消息服务器恢复正常时,未被订阅的通信账单会继续发送,同时为保证该通信账单至少被用户消费一次,所述MQ消息服务器会继续发送一次通信账单,从而会导致用户重复接收通信账单的现象,造成系统资源浪费。因此,本发明较佳实施例对所述初始延时消息进行防重处理,避免了延时消息被重复消费的问题。
详细地,所述对所述初始延时消息进行防重处理,得到目标延时消息,包括:
计算所述初始延时消息的唯一标识,利用所述唯一标识生成所述初始延时消息的分布式锁;根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在;若重复存在,则删除任意一个初始延时消息后生成所述目标延时消息;若没有重复存在,则生成所述目标延时消息。
进一步地,所述根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在,包括:
计算出所述Mq消息服务器中任意两个初始延时消息对应分布式锁的相似度,若相似度大于预设相似度,则表示对应的两个初始延时消息为相似延时消息,判定为重复存在,若所述相似度不大于预设相似度,则表示对应的两个初始延时消息为不相似延时消息,判定为不重复存在。
一个可选实施例中,利用余弦相似度算法计算出所述Mq消息服务器中任意两个初始延时消息对应分布式锁的相似度,所述预设相似度为0.95。
基于所述相似度的计算,保证了Mq消息服务器不会出现相同初始延时消息的概率,从而可以确保后续订阅者不会重复消费同一延时消息。
一个可选实施例中,利用MD5摘要算法计算所述初始延时消息的唯一标识,则所述唯一标识即为MD5值。
一个可选实施例中,所述分布式锁为redis分布式锁。
例如,上述通信账单由于出现网络故障发生或者MQ所在服务器宕机未能成功发送,利用redis分布式锁对所述通信账单进行加锁,在网络故障排出或者MQ所在服务器宕机恢复后,消费者申请再次发送通信账单请求时,计算出MQ消息服务器存在相同分布式锁的通信账单,表示当前账单已存在,则删除任意一个通信账单,避免了用户重复接收到相同的通信账单,因此,本发明实施例通过redis分布式锁限制了所述初始延时消息被消费者重复消费。
进一步地,本发明实施例将所述目标延时消息存储缓存中,以提高延时消息的加载速度和系统查询性能。
一个可选实施例中,所述缓存为redis缓存。
S3、查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
在本发明的至少一个实施例中,为了避免所述缓存中目标延时消息出现时间点漂移,导致目标延时消息加载失败的情况发生,本发明实施例根据查询所述缓存中目标延时消息的发送记录,识别出所述目标延时消息是否为首次执行,以通过执行次数避免所述目标延时消息过了执行时间,继续进行目标延时消息加载的操作,即若查询到所述目标延时消息在固定时间内的发送记录,则表示所述目标延时消息在所述MQ消息服务器中延时消息队列的固定时间内已经完成加载,不再执行所述目标延时消息的加载;若未查询到所述目标延时消息在固定时间内的发送记录,则将所述目标延时消息发送至所述MQ消息服务器中延时消息队列后,执行所述目标延时消息的加载。
其中,所述时间点漂移在本发明可以理解为延时消息过了加载时间,却依旧进行加载的现象。
一个可选实施例中,通过sql语句查询上述redis缓存中目标延时消息的发送记录。
其中,所述固定时间指的是目标延时消息的延时时间。
本发明通过读取延时消息的发送记录,保证了延时消息在延时时间内加载一条延时消息的原则,从而避免了延时消息在加载时出现时间点偏移的问题。
进一步地,在本发明另一实施例中,在执行所述目标延时消息的加载之后,还可以包括:获取所述目标延时消息的版本信息,根据所述版本信息过滤所述MQ消息服务器中对应的延时消息,以避免存储资源浪费,及因存储资源不足而导致延时消息无法写入的问题。
其中,所述版本信息包括:唯一标识(key)、版本号以及序列号。
综上所述,本发明实施例将获取的延时消息传输至预设消息服务器中,通过所述预设消息服务器中的定时器对传输的所述延时消息进行延时到期监控,可以很好的提高后续延时消息的加载时效,并选取延时到期的延时消息作为初始延时消息;其次,本发明实施例利用预设的分布式锁对所述初始延时消息进行防重处理,得到目标延时消息,避免了延时消息被重复消费的问题,释放了系统资源,从而可以降低系统维护成本,进一步地,将所述目标延时消息存入缓存中,可以提高延时消息的加载速度以及提高系统查询性能;进一步地,本发明实施例根据所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载,基于所述发送记录可以识别出所述目标延时消息是否为首次执行,以避免所述目标延时消息过了执行时间,继续进行目标延时消息加载的操作。因此,本发明提出的一种延时消息加载方法可以提高延时消息加载的时效性以及降低系统维护成本。
如图2所示,是本发明一实施例提供的延时消息加载装置的模块示意图。
本发明所述延时消息加载装置100可以安装于电子设备中。根据实现的功能,所述延时消息加载装置可以包括监控模块101、防重模块102以及加载模块103。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述监控模块101,用于获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息。
在本发明的至少一个实施例中,所述延时消息为生产者将生产的消息发送到服务端,但并不期望该消息立马投递,而是延迟一定时间后才投递到消费者的消息。例如,通信营业商在月底统计了用户当月的账单,但并没有将该用户当月的账单立刻发送至该用户,而是延迟至下个月的月初将该账单发送至用户,于是,所述账单即为本发明中的延时消息。由于基于不同业务场景可以生成不同的延时消息,因此本发明中不限定延时消息所包含的消息类型。其中,需要强调的是,为进一步保证上述延时消息的私密和安全性,上述延时消息还可以存储于一区块链的节点中。
一个可选实施例中,所述预设消息服务器包括RocketMQ消息服务器(简称MQ消息服务器),用于支持消息发送与消息订阅。本发明实施例将所述延时消息传输至所述预设消息服务器的临时主题中。其中,所述临时主题又称临时topic,指的是在所述预设消息服务器中临时创建的存储区域,其用于存储所述延时消息,方便与非延时消息区分存储位置。
一个可选实施例中,所述定时器可以是所述MQ消息服务器中的定时器,通过SQL语句编译生成。
进一步地,本发明较佳实施例中,所述通过定时器对所述延时消息进行延时到期监控,包括:
获取所述延时消息的延时时间,基于所述定时器创建定时任务服务,根据所述延时时间,利用所述定时任务服务监控所述延时消息的到期时间。
可选的,所述定时任务服务为ScheduleMessageService。
本发明通过创建定时任务服务实现延时消息的延时到期监控,可以更好的提高后续延时消息的加载时效。
所述防重模块102,用于对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中。
由于在进行延时消息加载时,由于会出现网络不稳定的情况或MQ消息服务器宕机等现象,从而会产生后续消费者订阅相同延时消息,例如,在发送上月用户的通信账单时,由于MQ消息服务器出现宕机了,该通信账单无法直接被用户订阅,当MQ消息服务器恢复正常时,未被订阅的通信账单会继续发送,同时为保证该通信账单至少被用户消费一次,所述MQ消息服务器会继续发送一次通信账单,从而会导致用户重复接收通信账单的现象,造成系统资源浪费。因此,本发明较佳实施例对所述初始延时消息进行防重处理,避免了延时消息被重复消费的问题。
详细地,所述对所述初始延时消息进行防重处理,得到目标延时消息,包括:
计算所述初始延时消息的唯一标识,利用所述唯一标识生成所述初始延时消息的分布式锁;根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在;若重复存在,则删除任意一个初始延时消息后生成所述目标延时消息;若没有重复存在,则生成所述目标延时消息。
进一步地,所述根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在,包括:
计算出所述Mq消息服务器中任意两个初始延时消息对应分布式锁的相似度,若相似度大于预设相似度,则表示对应的两个初始延时消息为相似延时消息,判定为重复存在,若所述相似度不大于预设相似度,则表示对应的两个初始延时消息为不相似延时消息,判定为不重复存在。
一个可选实施例中,利用余弦相似度算法计算出所述Mq消息服务器中任意两个初始延时消息对应分布式锁的相似度,所述预设相似度为0.95。
基于所述相似度的计算,保证了Mq消息服务器不会出现相同初始延时消息的概率,从而可以确保后续订阅者不会重复消费同一延时消息。
一个可选实施例中,利用MD5摘要算法计算所述初始延时消息的唯一标识,则所述唯一标识即为MD5值。
一个可选实施例中,所述分布式锁为redis分布式锁。
例如,上述通信账单由于出现网络故障发生或者MQ所在服务器宕机未能成功发送,利用redis分布式锁对所述通信账单进行加锁,在网络故障排出或者MQ所在服务器宕机恢复后,消费者申请再次发送通信账单请求时,计算出MQ消息服务器存在相同分布式锁的通信账单,表示当前账单已存在,则删除任意一个通信账单,避免了用户重复接收到相同的通信账单,因此,本发明实施例通过redis分布式锁限制了所述初始延时消息被消费者重复消费。
进一步地,本发明实施例将所述目标延时消息存储缓存中,以提高延时消息的加载速度和系统查询性能。
一个可选实施例中,所述缓存为redis缓存。。
所述加载模块103,用于查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
在本发明的至少一个实施例中,为了避免所述缓存中目标延时消息出现时间点漂移,导致目标延时消息加载失败的情况发生,本发明实施例根据查询所述缓存中目标延时消息的发送记录,识别出所述目标延时消息是否为首次执行,以通过执行次数避免所述目标延时消息过了执行时间,继续进行目标延时消息加载的操作,即若查询到所述目标延时消息在固定时间内的发送记录,则表示所述目标延时消息在所述MQ消息服务器中延时消息队列的固定时间内已经完成加载,不再执行所述目标延时消息的加载;若未查询到所述目标延时消息在固定时间内的发送记录,则将所述目标延时消息发送至所述MQ消息服务器中延时消息队列后,执行所述目标延时消息的加载。
其中,所述时间点漂移在本发明可以理解为延时消息过了加载时间,却依旧进行加载的现象。
一个可选实施例中,通过sql语句查询上述redis缓存中目标延时消息的发送记录。
其中,所述固定时间指的是目标延时消息的延时时间。
本发明通过读取延时消息的发送记录,保证了延时消息在延时时间内加载一条延时消息的原则,从而避免了延时消息在加载时出现时间点偏移的问题。
进一步地,在本发明另一实施例中,在执行所述目标延时消息的加载之后,还可以包括:获取所述目标延时消息的版本信息,根据所述版本信息过滤所述MQ消息服务器中对应的延时消息,以避免存储资源浪费,及因存储资源不足而导致延时消息无法写入的问题。
其中,所述版本信息包括:唯一标识(key)、版本号以及序列号。
综上所述,本发明实施例将获取的延时消息传输至预设消息服务器中,通过所述预设消息服务器中的定时器对传输的所述延时消息进行延时到期监控,可以很好的提高后续延时消息的加载时效,并选取延时到期的延时消息作为初始延时消息;其次,本发明实施例利用预设的分布式锁对所述初始延时消息进行防重处理,得到目标延时消息,避免了延时消息被重复消费的问题,释放了系统资源,从而可以降低系统维护成本,进一步地,将所述目标延时消息存入缓存中,可以提高延时消息的加载速度以及提高系统查询性能;进一步地,本发明实施例根据所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载,基于所述发送记录可以识别出所述目标延时消息是否为首次执行,以避免所述目标延时消息过了执行时间,继续进行目标延时消息加载的操作。因此,本发明提出的一种延时消息加载装置可以提高延时消息加载的时效性以及降低系统维护成本。
如图3所示,是本发明一实施例提供的实现延时消息加载的方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如延时消息加载程序。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如延时消息加载程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如延时消息加载程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的延时消息加载程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息;
对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中;
查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述原始数据集的私密和安全性,上述稽核数据还可以存储于一区块链的节点中。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种延时消息加载方法,其特征在于,所述方法包括:
获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息;
对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中;
查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
2.如权利要求1所述的延时消息加载方法,其特征在于,所述通过定时器对所述延时消息进行延时到期监控,包括:
获取所述延时消息的延时时间,基于所述定时器创建定时任务服务,根据所述延时时间,利用所述定时任务服务监控所述延时消息的到期时间。
3.如权利要求1所述的延时消息加载方法,其特征在于,所述对所述初始延时消息进行防重处理,得到目标延时消息,包括:
计算所述初始延时消息的唯一标识,利用所述唯一标识生成所述初始延时消息的分布式锁;
根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在;
若重复存在,则删除任意一个初始延时消息后生成所述目标延时消息;
若没有重复存在,则生成所述目标延时消息。
4.如权利要求1至3中任意一项所述的延时消息加载方法,其特征在于,所述执行所述目标延时消息的加载之后,该方法还包括:
获取所述目标延时消息的版本信息,根据所述版本信息,过滤所述预设消息服务器中对应的延时消息。
5.如权利要求4所述的延时消息加载方法,其特征在于,所述版本信息包括:唯一标识、版本号以及序列号。
6.一种延时消息加载装置,其特征在于,所述装置包括:
监控模块,用于获取延时消息,将所述延时消息传输至预设消息服务器中,通过定时器对所述延时消息进行延时到期监控,并选取延时到期的延时消息作为初始延时消息;
防重模块,用于对所述初始延时消息进行防重处理,得到目标延时消息,并将所述目标延时消息存入缓存中;
加载模块,用于查询所述缓存中目标延时消息的发送记录,根据所述发送记录,执行所述目标延时消息的加载。
7.如权利要求6所述的延时消息加载装置,其特征在于,所述监控模块具体用于:
获取所述延时消息的延时时间,基于所述定时器创建定时任务服务,根据所述延时时间,利用所述定时任务服务监控所述延时消息的到期时间。
8.如权利要求6所述的延时消息加载装置,其特征在于,所述防重模块具体用于:
计算所述初始延时消息的唯一标识,利用所述唯一标识生成所述初始延时消息的分布式锁;
根据所述分布式锁,判断出所述初始延时消息在所述消息服务器中是否重复存在;
若重复存在,则删除任意一个初始延时消息后生成所述目标延时消息;
若没有重复存在,则生成所述目标延时消息。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任意一项所述的延时消息加载方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的延时消息加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010734028.3A CN111901224A (zh) | 2020-07-24 | 2020-07-24 | 延时消息加载方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010734028.3A CN111901224A (zh) | 2020-07-24 | 2020-07-24 | 延时消息加载方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111901224A true CN111901224A (zh) | 2020-11-06 |
Family
ID=73190223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010734028.3A Pending CN111901224A (zh) | 2020-07-24 | 2020-07-24 | 延时消息加载方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901224A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422576A (zh) * | 2022-01-24 | 2022-04-29 | 深圳壹账通智能科技有限公司 | 一种会话清理方法、装置、计算机设备和可读存储介质 |
CN114785805A (zh) * | 2022-04-18 | 2022-07-22 | 北京高途云集教育科技有限公司 | 一种数据传输方法、装置、电子设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945813B1 (en) * | 2006-12-16 | 2011-05-17 | United Services Automobile Association (Usaa) | Automated delayed message redelivery |
WO2018103315A1 (zh) * | 2016-12-09 | 2018-06-14 | 上海壹账通金融科技有限公司 | 监控数据的处理方法、装置、服务器及存储设备 |
CN109450778A (zh) * | 2018-12-28 | 2019-03-08 | 北京爱奇艺科技有限公司 | 一种消息延时投递方法、装置及设备 |
CN110636130A (zh) * | 2019-09-23 | 2019-12-31 | 上海钧正网络科技有限公司 | 延时消息处理方法、装置、计算机设备和存储介质 |
CN111225041A (zh) * | 2019-12-26 | 2020-06-02 | 的卢技术有限公司 | 一种实现延时消息队列的方法及系统 |
CN111274047A (zh) * | 2020-01-16 | 2020-06-12 | 中国平安财产保险股份有限公司 | 信息处理方法、终端、系统、计算机设备和存储介质 |
-
2020
- 2020-07-24 CN CN202010734028.3A patent/CN111901224A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945813B1 (en) * | 2006-12-16 | 2011-05-17 | United Services Automobile Association (Usaa) | Automated delayed message redelivery |
WO2018103315A1 (zh) * | 2016-12-09 | 2018-06-14 | 上海壹账通金融科技有限公司 | 监控数据的处理方法、装置、服务器及存储设备 |
CN109450778A (zh) * | 2018-12-28 | 2019-03-08 | 北京爱奇艺科技有限公司 | 一种消息延时投递方法、装置及设备 |
CN110636130A (zh) * | 2019-09-23 | 2019-12-31 | 上海钧正网络科技有限公司 | 延时消息处理方法、装置、计算机设备和存储介质 |
CN111225041A (zh) * | 2019-12-26 | 2020-06-02 | 的卢技术有限公司 | 一种实现延时消息队列的方法及系统 |
CN111274047A (zh) * | 2020-01-16 | 2020-06-12 | 中国平安财产保险股份有限公司 | 信息处理方法、终端、系统、计算机设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
PIGCOFFEE: "RocketMQ-延迟消息处理流程", 《CSDN》 * |
PIGCOFFEE: "RocketMQ-延迟消息处理流程", 《CSDN》, 23 August 2019 (2019-08-23) * |
接天居士: "rocketMq的延迟消息分析", Retrieved from the Internet <URL:https://blog.csdn.net/jtjs1989/article/details/81073226> * |
王大雄: "阿里云ONS / RocketMQ的定时消息 / 延时消息", Retrieved from the Internet <URL:https://blog.csdn.net/zgdwxp/article/details/97112576> * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422576A (zh) * | 2022-01-24 | 2022-04-29 | 深圳壹账通智能科技有限公司 | 一种会话清理方法、装置、计算机设备和可读存储介质 |
CN114422576B (zh) * | 2022-01-24 | 2024-02-06 | 深圳壹账通智能科技有限公司 | 一种会话清理方法、装置、计算机设备和可读存储介质 |
CN114785805A (zh) * | 2022-04-18 | 2022-07-22 | 北京高途云集教育科技有限公司 | 一种数据传输方法、装置、电子设备以及存储介质 |
CN114785805B (zh) * | 2022-04-18 | 2024-04-12 | 北京高途云集教育科技有限公司 | 一种数据传输方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015815B (zh) | 数据同步方法、装置及计算机可读存储介质 | |
CN113422686B (zh) | 网关层鉴权方法、系统、电子设备及存储介质 | |
CN112653760B (zh) | 跨服务器的文件传输方法、装置、电子设备及存储介质 | |
CN111429121B (zh) | 基于区块链的电子罚单处理方法、装置、设备及存储介质 | |
CN111901224A (zh) | 延时消息加载方法、装置、设备及计算机可读存储介质 | |
CN111880948A (zh) | 数据刷新方法、装置、电子设备及计算机可读存储介质 | |
CN112506559A (zh) | 基于网关的灰度发布方法、装置、电子设备及存储介质 | |
CN112580079A (zh) | 权限配置方法、装置、电子设备及可读存储介质 | |
CN114389889A (zh) | 基于区块链技术的文件全生命周期管理方法及装置 | |
CN114205322A (zh) | 消息发送方法、装置、电子设备及存储介质 | |
CN112256783A (zh) | 数据导出方法、装置、电子设备及存储介质 | |
CN115002062A (zh) | 消息处理方法、装置、设备及可读存储介质 | |
CN113360321B (zh) | 微服务重试调用方法、装置、电子设备及存储介质 | |
CN114844844A (zh) | 延时消息处理方法、装置、设备及存储介质 | |
CN112540839B (zh) | 信息变更方法、装置、电子设备及存储介质 | |
CN112217639B (zh) | 数据的加密共享方法、装置、电子设备及计算机存储介质 | |
CN114640707A (zh) | 一种消息异步处理方法、装置、电子设备及存储介质 | |
CN113221154A (zh) | 服务密码获取方法、装置、电子设备及存储介质 | |
CN114201466B (zh) | 防缓存击穿方法、装置、设备及可读存储介质 | |
CN113347451B (zh) | 视频上传方法、装置、电子设备及计算机可读存储介质 | |
CN114626948A (zh) | 区块链交易记账方法、装置、电子设备及存储介质 | |
CN113342867A (zh) | 数据分发及管理方法、装置、电子设备及可读存储介质 | |
CN115170152A (zh) | 一种数据分发方法、装置、设备和存储介质 | |
CN114826725A (zh) | 数据交互方法、装置、设备及存储介质 | |
CN113360767A (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: 20201106 |
|
RJ01 | Rejection of invention patent application after publication |