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

信息发送方法、装置及电子设备与流程

2022-02-19 13:52:11 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种信息发送方法、装置及电子设备。


背景技术:

2.随着移动互联网的发展,运营人员可以向用户移动设备主动发送短信,例如,新闻客户端的热点新闻推荐,电商产品促销信息及企业应用的通知等等。短信推送对于提高产品活跃度及提升用户粘性起到了重要作用。
3.短信推送需要向大量用户发送待发送信息,目前,为了提高短信推送的效率,通过多个进程同时进行信息的发送,会大概率出现多个进程向同一个对象发送相同的信息,从而导致短信重复发送的概率较大。


技术实现要素:

4.本公开实施例提供一种信息发送方法及电子设备,以解决现有技术中通过多个进程同时进行信息的发送,会大概率出现多个进程向同一个对象发送相同的信息,从而导致短信重复发送的概率较大的问题。
5.为了解决上述技术问题,本发明是这样实现的:
6.第一方面,本公开实施例提供了一种信息发送方法,所述方法包括:
7.获取待发送信息;
8.在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记;
9.发送所述待发送信息,基于所述待发送信息的发送结果解除所述锁定标记。第二方面,本公开实施例提供了一种信息发送装置,所述装置包括:
10.第一获取模块,用于获取待发送信息;
11.标记模块,用于在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记;
12.发送模块,用于发送所述待发送信息,基于所述待发送信息的发送结果解除所述锁定标记。
13.第三方面,本公开实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的信息发送方法中的步骤。
14.第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的信息发送方法中的步骤。
15.本公开实施例中,获取待发送信息;在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记;发送所述待发送信息,基于所述待发送信息的发送结果解除所述锁定标记。这样,通过分布式锁对所述待发送信息进行锁
定标记,在同一时间仅允许一个进程发送待发送信息,避免多个进程同时向同一用户发送待发送信息,从而能够降低短信重复发送的概率。
附图说明
16.为了更清楚地说明本公开实施例的技术方案,下面将对本公开实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1是本公开实施例提供的一种信息发送方法的流程图;
18.图2是本公开实施例提供的一种信息发送装置的结构示意图之一;
19.图3是本公开实施例提供的一种信息发送装置的结构示意图之二;
20.图4是本公开实施例提供的一种信息发送装置的结构示意图之三;
21.图5是本公开实施例提供的一种信息发送装置的结构示意图之四;
22.图6是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
23.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.在本公开实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载移动终端、可穿戴设备、以及计步器等。
25.参见图1,图1是本公开实施例提供的一种信息发送方法的流程图,如图1所示,包括以下步骤:
26.步骤101、获取待发送信息。
27.其中,待发送信息可以为短信,或者可以为其他形式的推广信息。在获取到待发送信息后,可以在数据库中记录所述待发送信息对应的第二标识,第二标识可以用于唯一标识待发送信息及目标对象,目标对象为待发送信息的被发送对象。示例地,第二标识可以为对所述待发送信息的信息内容与目标对象进行数字签名获得的签名信息;或者,第二标识可以为数字;或者第二标识可以为字符串;可以用于唯一标识待发送信息及目标对象的标识信息均可以作为第二标识。
28.另外,待发送信息可以是针对目标对象的待发送信息,对于不同的目标对象,待发送信息可以相同,也可以不同。
29.步骤102、在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记。
30.其中,分布式锁是指在分布式环境中,用于保护竞争资源正确地被各个实例读写的技术,通过锁设置命令可以实现分布式锁。分布式锁的类型可以为互斥锁,从而能够对待发送信息进行锁定标记,互斥锁保护了一个临界区,在该临界区中,一次最多只能进入一个线程或进程。在采用分布式锁对所述待发送信息进行锁定标记之后,可以在远程字典服务
(remote dictionary server,redis)中记录待发送信息对应的第二标识与分布式锁的对应关系,从而其他进程能够在redis中查询待发送信息是否已被锁定。
31.另外,针对所述待发送信息的分布式锁,可以是针对目标对象的待发送信息的分布式锁。采用分布式锁对所述待发送信息进行锁定标记,可以是,采用分布式锁对针对目标对象的待发送信息进行锁定标记。
32.需要说明的是,若查询到针对所述待发送信息的分布式锁,则表征该待发送信息正在被其他进程进行发送,则不对该待发送信息进行发送。
33.步骤103、发送所述待发送信息,基于所述待发送信息的发送结果解除所述锁定标记。
34.其中,所述基于所述待发送信息的发送结果解除所述锁定标记,可以包括,在所述发送结果表征所述待发送信息发送成功的情况下,从第一时刻开始经过第一预设时长后解除所述锁定标记,所述第一时刻为发送所述待发送信息的时刻,和/或,在所述发送结果表征所述待发送信息发送失败的情况下,从所述第一时刻开始经过第二预设时长后解除所述锁定标记,所述第二预设时长小于所述第一预设时长;等等,本实施例对此不进行限定。
35.另外,发送所述待发送信息可以是向目标对象发送所述待发送信息。解除锁定标定,可以是释放所述待发送信息对应的分布式锁,释放待发送信息对应的分布式锁之后,在redis中待发送信息对应的第二标识与分布式锁的对应关系被删除。
36.需要说明的是,通过分布式锁对所述待发送信息进行锁定标记,能够仅允许一个进程发送待发送信息,从而能够降低短信重复发送的概率,提高短信发送的效率,并避免骚扰用户。
37.本公开实施例中,获取待发送信息;在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记;发送所述待发送信息,基于所述待发送信息的发送结果解除所述锁定标记。这样,通过分布式锁对所述待发送信息进行锁定标记,在同一时间仅允许一个进程发送待发送信息,避免多个进程同时向同一用户发送待发送信息,从而能够降低短信重复发送的概率。
38.可选的,所述获取待发送信息之后,所述方法还包括:
39.获取所述待发送信息对应的第一标识,所述第一标识用于表征所述待发送信息是否已发送至目标对象;
40.所述在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记,包括:
41.若所述第一标识表征所述待发送信息未发送,则在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记。
42.其中,第一标识可以用于表征所述待发送信息是否已发送,待发送信息对应的第一标识可以从数据库中获取。示例地,第一标识可以包括“已发送”和“未发送”;或者“是”和“否”;或者勾选标识;等等,本实施例对第一标识的具体表现形式不进行限定。目标对象为被发送对象,目标对象可以通过手机号码的形式表征。
43.一种实施方式中,可以在数据库中记录所述待发送信息对应的第二标识与第一标识的对应关系,从而通过待发送信息对应的第二标识可以确定待发送信息是否已被发送至目标对象。
44.一种实施方式中,所述基于所述待发送信息的发送结果解除所述锁定标记,可以包括,在所述发送结果表征所述待发送信息发送成功的情况下,更新所述第一标识,以使更新后的所述第一标识表征所述待发送信息已发送,在成功更新所述第一标识后,解除所述锁定标记。
45.该实施方式中,若所述第一标识表征所述待发送信息未发送,则在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记,这样,能够通过第一标识区分已发送和未发送的信息,从而能够进一步降低短信重复发送的概率。
46.可选的,所述发送所述待发送信息之后,所述方法还包括:
47.在所述发送结果表征所述待发送信息发送成功的情况下,更新所述第一标识,以使更新后的所述第一标识表征所述待发送信息已发送。
48.其中,以在数据库中记录所述待发送信息对应的第二标识与第一标识的对应关系为例,若所述发送结果表征所述待发送信息发送成功,则可以更新数据库中的第一标识。以第一标识包括“已发送”和“未发送”为例,可以将第一标识由“未发送”更新为“已发送”,从而其他进程能够从数据库中的第一标识获知待发送信息已成功发送至目标对象,不会再重复将待发送信息发送至目标对象。
49.该实施方式中,在所述发送结果表征所述待发送信息发送成功的情况下,更新所述第一标识,以使更新后的所述第一标识表征所述待发送信息已发送,从而能够及时更新待发送信息的发送状态。
50.可选的,所述基于所述待发送信息的发送结果解除所述锁定标记,包括:
51.在所述发送结果表征所述待发送信息发送成功的情况下,从第一时刻开始经过第一预设时长后解除所述锁定标记,所述第一时刻为发送所述待发送信息的时刻;
52.在所述发送结果表征所述待发送信息发送失败的情况下,从所述第一时刻开始经过第二预设时长后解除所述锁定标记,所述第二预设时长小于所述第一预设时长。
53.其中,第一预设时长可以为6小时;或者24小时;或者48小时,等等,本实施例对此不进行限定。一种实施方式中,第一预设时长大于1小时。第二预设时长可以为5秒;或者10秒;或者1分钟等等,本实施例对此不进行限定。一种实施方式中,第二预设时长小于10分钟。
54.需要说明的是,在成功向目标对象发送待发送信息,且暂未更新数据库中的第一标识时,为避免其他进程重复向目标对象发送待发送信息,可以延迟一段时间后解除锁定标定,例如,可以24小时后再解除锁定标定。在向目标对象发送待发送信息失败的情况下,为使得其他进程能够尽快重新向目标对象发送待发送信息,可以尽可能快地解除锁定标记,例如,可以在确定向目标对象发送待发送信息失败的时刻解除锁定标记。
55.该实施方式中,在所述发送结果表征所述待发送信息发送成功的情况下,从第一时刻开始经过第一预设时长后解除所述锁定标记;在所述发送结果表征所述待发送信息发送失败的情况下,从所述第一时刻开始经过第二预设时长后解除所述锁定标记。这样,对于发送失败的信息,能够尽早解除锁定标定,以便其他进程获取该信息进行发送;对于发送成功的信息,在延迟一段时间后解除锁定标定,避免其他进程重复发送该信息。
56.可选的,所述采用分布式锁对所述待发送信息进行锁定标记之前,所述方法还包
括:
57.获取所述待发送信息对应的第二标识,所述第二标识为对所述待发送信息的信息内容与目标对象进行数字签名获得的签名信息;
58.基于所述第二标识在远程字典服务redis中查询是否存在针对所述待发送信息的分布式锁。
59.其中,目标对象可以是待发送信息的被发送对象,可以采用手机号码的形式表征目标对象。可以将所述待发送信息的信息内容与目标对象进行数字签名,得到签名信息,将签名信息作为第二标识。进行数字签名的算法可以为md算法,或者可以为sha算法,等等,本实施例对此不进行限定。
60.另外,若redis中存在针对所述待发送信息的分布式锁,则在redis中记录有待发送信息对应的第二标识与分布式锁的对应关系,从而通过第二标识可以在redis中查询是否存在针对所述待发送信息的分布式锁。
61.该实施方式中,获取所述待发送信息对应的第二标识,所述第二标识为对所述待发送信息的信息内容与目标对象进行数字签名获得的签名信息;基于所述第二标识在远程字典服务redis中查询是否存在针对所述待发送信息的分布式锁。这样,通过第二标识能够唯一标识所述待发送信息,从而能够较为准确地通过第二标识在redis中确定待发送信息是否已被锁定。
62.作为一个具体的实施例,待发送信息为短信,该短信的被发送对象为1000个手机号码,可以分别将该短信的短信内容与每个手机号码采用数字签名算法进行数字签名,得到1000个第二标识,可以在数据库中存储该1000个第二标识,并对每个第二标识设置一个对应的第一标识,该第一标识用于表征第二标识对应的短信是否已发送至第二标识对应的手机号码。该1000个第二标识可以表征1000个短信发送任务。在执行短信发送任务时,多个进程并行执行短信发送任务,进程可以基于第一标识从数据库中获取未完成的短信发送任务,并基于该未完成的短信发送任务对应的第二标识在redis中查询是否存在与该第二标识对应的分布式锁。若在redis中未查询到存在与该第二标识对应的分布式锁,则可以表征该短信发送任务尚未被其他进程执行,则可以采用分布式锁对该短信发送任务进行锁定标记,并在redis中记录该短信发送任务对应的第二标识与分布式锁的对应关系,以表征redis中存在与该短信发送任务对应的第二标识对应的分布式锁,从而其他进程不会重复执行该短信发送任务。在短信发送成功后,可以更新数据库中该短信发送任务对应的第一标识,并释放分布式锁。
63.参见图2,图2是本公开实施例提供的一种信息发送装置的结构示意图之一,如图2所示,信息发送装置200包括:
64.第一获取模块201,用于获取待发送信息;
65.标记模块202,用于在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记;
66.发送模块203,用于发送所述待发送信息,基于所述待发送信息的发送结果解除所述锁定标记。
67.可选的,如图3所示,所述装置200还包括:
68.第二获取模块204,用于获取所述待发送信息对应的第一标识,所述第一标识用于
表征所述待发送信息是否已发送至目标对象;
69.所述标记模块202具体用于:
70.若所述第一标识表征所述待发送信息未发送,则在未查询到针对所述待发送信息的分布式锁的情况下,采用分布式锁对所述待发送信息进行锁定标记。
71.可选的,如图4所示,所述装置200还包括:
72.更新模块205,用于在所述发送结果表征所述待发送信息发送成功的情况下,更新所述第一标识,以使更新后的所述第一标识表征所述待发送信息已发送。
73.可选的,所述发送模块203具体用于:
74.发送所述待发送信息;
75.在所述发送结果表征所述待发送信息发送成功的情况下,从第一时刻开始经过第一预设时长后解除所述锁定标记,所述第一时刻为发送所述待发送信息的时刻;
76.在所述发送结果表征所述待发送信息发送失败的情况下,从所述第一时刻开始经过第二预设时长后解除所述锁定标记,所述第二预设时长小于所述第一预设时长。
77.可选的,如图5所示,所述装置200还包括:
78.第三获取模块206,用于获取所述待发送信息对应的第二标识,所述第二标识为对所述待发送信息的信息内容与目标对象进行数字签名获得的签名信息;
79.查询模块207,用于基于所述第二标识在远程字典服务redis中查询是否存在针对所述待发送信息的分布式锁。
80.信息发送装置能够实现图1的方法实施例中实现的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
81.如图6所示,本发明实施例还提供了一种电子设备300,包括:存储器302、处理器301及存储在所述存储器302上并可在所述处理器301上运行的程序,所述程序被所述处理器301执行时实现上述信息发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
82.本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述信息发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read

only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
83.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
84.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服
务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
85.上面结合附图对本公开的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
再多了解一些

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

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

相关文献