CN116723473A - 短信发送方法、装置、设备和可读存储介质 - Google Patents
短信发送方法、装置、设备和可读存储介质 Download PDFInfo
- Publication number
- CN116723473A CN116723473A CN202310664321.0A CN202310664321A CN116723473A CN 116723473 A CN116723473 A CN 116723473A CN 202310664321 A CN202310664321 A CN 202310664321A CN 116723473 A CN116723473 A CN 116723473A
- Authority
- CN
- China
- Prior art keywords
- short message
- user
- sending
- message
- short
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000007246 mechanism Effects 0.000 claims abstract description 22
- 230000001960 triggered effect Effects 0.000 claims abstract description 12
- 239000010453 quartz Substances 0.000 claims description 18
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 244000026610 Cynodon dactylon var. affinis Species 0.000 description 1
- 108010015780 Viral Core Proteins Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请提供一种短信发送方法、装置、设备和可读存储介质,可用于分布式架构领域。该方法包括:获取短信发送信息,短信发送信息至少包括短信内容、触发时点、触发条件;在触发时点触发时,根据触发条件,确定待发送短信的用户清单,用户清单中包括至少一个用户;查询用户清单中每个用户的短信发送号码,并将短信发送号码和短信内容作为请求报文写入指令表,指令表为Dubbo指令表;通过分布式框架Dubbo的远程调用机制读取指令表中的请求报文;将请求报文组织为目标报文并转发至短信发送平台,短信发送平台用于根据目标报文发送短信至每个用户。本申请的方法支持大批量短信发送的业务场景,提高了短信发送方法在不同业务场景下的适用性。
Description
技术领域
本申请涉及分布式架构领域,尤其涉及一种短信发送方法、装置、设备和可读存储介质。
背景技术
短信提醒功能是目前业务端与客户交互的一种行之有效的方案,短信提醒既保证了客户应知须知的权利,还可以做到一定的客户提醒功能,提高客户活跃度,保障客户黏性。
目前,短信发送功能大多是基于联机的,其主要适用于客户交易场景。
但是,目前这种联机的短信发送功能,其只能够一对一的发送,即在某一个用户发起交易时,反馈对应的短信至该用户,其所支持的短信发送场景单一,适用性差。
发明内容
本申请提供一种短信发送方法、装置、设备和可读存储介质,用以解决目前短信发送方法不支持大批量短信发送场景,业务场景适用性差的问题。
第一方面,本申请提供一种短信发送方法,包括:
获取短信发送信息,所述短信发送信息至少包括短信内容、触发时点、触发条件;
在所述触发时点触发时,根据所述触发条件,确定待发送短信的用户清单,所述用户清单中包括至少一个用户;
查询所述用户清单中每个用户的短信发送号码,并将所述短信发送号码和短信内容作为请求报文写入指令表,所述指令表为分布式框架Dubbo指令表;
通过分布式框架Dubbo的远程调用机制读取所述指令表中的请求报文;
将所述请求报文组织为目标报文并转发至短信发送平台,所述短信发送平台用于根据所述目标报文发送短信至每个用户。
第二方面,本申请提供一种短信发送装置,包括:
信息获取模块,用于获取短信发送信息,所述短信发送信息至少包括短信内容、触发时点、触发条件;
清单确定模块,用于在所述触发时点触发时,根据所述触发条件,确定待发送短信的用户清单,所述用户清单中包括至少一个用户;
报文写入模块,用于查询所述用户清单中每个用户的短信发送号码,并将所述短信发送号码和短信内容作为请求报文写入指令表,所述指令表为分布式框架Dubbo指令表;
报文读取模块,用于通过分布式框架Dubbo的远程调用机制读取所述指令表中的请求报文;
报文转发模块,用于将所述请求报文组织为目标报文并转发至短信发送平台,所述短信发送平台用于根据所述目标报文发送短信至每个用户。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如上述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述的方法。
本申请提供的短信发送方法、装置、设备和可读存储介质,通过提前配置短信内容、短信触发时点和触发条件,基于触发条件查找到所需发送的用户清单,然后通过分布式框架Dubbo的远程调用机制,可以实现短信的大批量并发,使得在同一时间为用户群体中的每个用户同时发送短信,提高短信发送效率,并增加短信发送的适用场景。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为目前短信发送的场景示意图;
图2为本申请实施例提供的短信发送方法的场景示意;
图3为本申请实施例提供的短信发送方法的流程示意图;
图4为本申请另一实施例提供的短信发送的流程示意图;
图5为本申请又一实施例提供的短信发送方法的流程示意图;
图6为本申请实施例提供的短信发送装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本申请提供的短信发送方法、装置、设备和可读存储介质,可用于分布式架构领域,也可用于除分布式架构领域之外的任意领域,本申请提供的短信发送方法、装置、设备和可读存储介质的应用领域不做限定。
目前短信发送功能大多是基于联机的,适用于客户交易场景。示例性的,图1为目前短信发送的场景示意图,如图1所示,用户通过操作通讯设备(例如手机10)向云端11发起交易请求,此时云端11中的服务器可以反馈回对应的短信(例如交易码)给用户,用户基于该交易码来完成请求的交易。而大批量发送短信通知,需要考虑并发,保证幂等性,既要保证效率又要考虑不能重复发送。从图1可以直观的看到当前联机的这种短信发送功能不能够适用于大批量的短信发送场景。
针对目前遇到的问题,本申请实施例提供了一种短信发送方法、装置、设备和可读存储介质,其能够解决目前短信发送功能不能够适用于大批量的短信发送场景,适用性差的问题。具体的,通过提前配置短信内容、短信触发时点和触发条件,基于触发条件查找到所需发送的用户清单,然后通过分布式框架Dubbo的远程调用机制,可以实现短信的大批量并发,使得在同一时间为用户群体中的每个用户同时发送短信,提高短信发送效率,并增加短信发送的适用场景。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的短信发送方法的场景示意,如图2所示,当需要给大批量用户发送相同内容的短信通知时(例如提示某个金融产品的到期时限),通过大批量短信发送装置21输出每一个用户对应的报文给短信发送平台22,短信发送平台22基于得到的报文,为每一个用户发送短信。
图3为本申请实施例提供的短信发送方法的流程示意图,该方法可以应用于上述的大批量短信发送装置,如图3所示,该方法可以包括如下步骤:
步骤S301,获取短信发送信息,短信发送信息至少包括短信内容、触发时点、触发条件。
在本实施例中,给每一个用户所发送的短信内容可以是相同的,例如以某个金融产品即将到期,业务人员想为订阅该金融产品的用户进行提醒时,业务人员可以事先编辑短信内容“金融产品A将于4月1日到期,请您注意”,当短信发送到每一个用户时,每一个用户都可以看到相同的该短信内容。基于这种场景,短信内容可以是指每一个用户都可以查阅的公共信息,如此就可以为业务人员配置特定的模板,业务人员直接在该模板中输入短信内容即可,提高业务人员的工作效率,不需要业务人员为每个用户分别去配置不同的短信内容。
示例性的,在其他实施方式中,短信内容可以包括产品等级信息调整(例如金融产品A的等级发生调整,例如短信内容为“产品A的等级调整为D”)、产品到期信息通知(例如用户订阅了某个金融产品B,到期日为一个月后,此时短信内容可以为“金融产品B将在下一月此时到期”)。
需要说明的是,实际上在日常应用中,发送到每个用户的短信中除了包含上述的公共信息(即短信内容)之外,还可能包含每一个用户的用户信息(每个用户的用户信息不相同),对于这种情况,就需要在模板中嵌入对应的文本区域,然后再由大批量短信发送装置21调取每个用户的用户信息,对应的填入到该文本区域,避免业务人员手动填写,提高短信的发送效率。
在本实施例中,触发时点是指某一个设定的时间点,例如当前时间为12:00,则触发时点可以设定为5分钟之后,即12:05。触发条件是指业务人员预先配置的条件,例如设定在到达触发时点之后,需要发送短信给哪些用户(即用户名单)。
步骤S302,在触发时点触发时,根据触发条件,确定待发送短信的用户清单,用户清单中包括至少一个用户。
在本实施例中,可以基于触发时点,写入定时任务至任务调度框架Quartz中,由任务调度框架Quartz轮询作业,确定当前是否到达触发时点。其中,Quartz是一个任务调度框架,是一种功能丰富的,开放源码的作业调度库。其可以用来创建简单或为运行十个,百个,甚至是好几万个复杂的程序。
其中,业务人员可以直接在触发条件中配置用户清单,通常用户清单中的用户数量成千上万,在一些实施方式中,当用户的数量较多时,可以将大批量的用户划分为多个批次,然后按批次进行短信发送。如此可以避免高并发造成的系统堵塞。
示例性的,业务人员可以在数据库表中预先配置特定白名单用户,作为用户名单,当触发时点触发时,上述的大批量短信发送装置21通过查询数据库表,获取用户名单。其中,业务人员在配置特定白名单用户时,业务人员可以登录技术中台,通过技术中台的“短信维护”界面来配置触发条件。其中,上述的技术中台具有管理功能,供业务配置短信内容、发送时点、触发条件等。
步骤S303,查询用户清单中每个用户的短信发送号码,并将短信发送号码和短信内容作为请求报文写入指令表,指令表为Dubbo指令表。
在本实施例中,可以基于用户清单中每个用户的用户信息,查询与该用户关联的短信发送号码。其中,短信发送号码用于标识出每个不同的用户,并通过该短信发送号码将上述的短信内容发送给与该短信发送号码关联的用户终端。
其中,Dubbo是开源的一个高性能优秀的服务框架,使得应用可通过高性能的远程过程调用(Remote Procedure Call,RPC)实现服务的输出和输入功能,Dubbo提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。通过Dubbo可以实现对微服务的远程调用,微服务则用于短信发送的相关处理。通过使用Duboo的分布式框架处理,可以保证短信发送的处理效率,达成业务目标。
步骤S304,通过分布式框架Dubbo的远程调用机制读取指令表中的请求报文。
在本实施例中,Dubbo可以轮询上述指令表,读取指令表中的请求报文,根据请求报文和交易码调用短信发送的程序。由短信发送的程序来实现最终版本的短信报文生成。其中,可以通过动物园管理员(Zookeeper)提供微服务注册中心的功能,在注册中心完成微服务的注册之后,通过Dubbo的远程调用机制调用微服务来实现响应和后续的短信发送控制。
步骤S305,将请求报文组织为目标报文并转发至短信发送平台,短信发送平台用于根据目标报文发送短信至每个用户。
在本实施例中,可以将短信发送号码和短信内容组成可扩展标记语言(Extensible Markup Language,XML)报文。其中,通过组合得到XML格式的报文,可以方便组织得到目标报文,提高目标报文的生成效率并进一步提高后续短信的发送效率。
其中,给每个用户发送的短信都是差不多的(例如短信内容都是相同的,只有部分用户信息不一样,例如在短信中加入用户A的姓名,以此来告知用户A与其他用户不一样)。示例性的,在通过Dubbo的远程调用机制调用微服务时,可以通过参数传入的方式来在短信中写入该用户的用户信息。每个单个服务调用的都是同一个后台的应用,来完成该服务负责的短信的发送。由于是大批量的短信发送,微服务可以把该短信发送任务拆分成一千个(基于用户数量确定)单个的服务来分别执行对每个用户的短信发送,单个服务基于每个用户的用户信息以及共用的短信内容,组成目标报文发给短信发送平台。
示例性的,图4为本申请另一实施例提供的短信发送的流程示意图,如图4所示,其包括如下步骤:步骤S401,技术中台维护。步骤S402,定时任务调起。步骤S403,短信发送。其中,技术中台可供业务人员使用,业务人员通过技术中台可以编辑需要发送的短信内容、触发时点和触发条件,由技术中台写入到Quartz作业中。Quartz轮询调度,在触发时点开始执行,根据触发条件,筛选正确的用户清单,查询客户手机号,写入Dubbo指令。Dubbo轮询指令表,调用短信发送指令,组成xml报文,发短信发送平台。其中,在大批量短信需要发送时,发送至短信发送平台的短信可以并发。
本申请实施例通过提前配置短信内容、短信触发时点和触发条件,基于触发条件查找到所需发送的用户清单,然后通过分布式框架Dubbo的远程调用机制,可以实现短信的大批量并发,使得在同一时间为用户群体中的每个用户同时发送短信,提高短信发送效率,并增加短信发送的适用场景。
在另一些实施例中,上述方法还包括如下步骤:将该短信发送信息保存至数据库表中;根据触发时点,建立定时任务,并将定时任务写入至任务调度框架Quartz的作业任务中。
在本实施例中,示例性的,业务人员可以点击技术中台的“短信维护”界面,新增一条短信模板,触发时点为5分钟后,触发条件为特定白名单客户;同时,业务人员可以点击“保存”,后台将保存业务人员的操作记录进数据库表,并将定时任务写入Quartz作业中,由Quartz轮询调度。其中,在Quartz轮询的过程中,如果当前时刻为触发时点,则触发定时任务,进行短信发送作业。
进一步的,基于本实施例的技术方案,在其他实施方式中,上述步骤S302具体可以通过如下步骤实现:通过任务调度框架Quartz轮询作业任务,确定当前时刻是否为触发时点;若当前时刻为触发时点,则查询数据库表并根据数据库表中该触发时点对应的触发条件,确定用户清单。
在本实施例中,任务调度框架Quartz可以实时的进行轮询调度,如果当前不是触发时点,则正常结束,然后在下一时刻继续轮询,直到当前达到触发时点,触发定时任务。其中,数据库表中可以存储多个短信发送信息,每个短信发送信息都有对应的触发时点和触发条件。
本申请实施例通过使用Quartz批量定时任务调度机制,能够解决调用不成功时的问题,实现定时批量调度功能,再基于Dubbo的分布式框架处理,可以保证处理效率,实现集群模式下短信并发处理,保证大批量短信的处理效率。
在另一些实施例中,上述步骤S303具体可以通过如下步骤实现:获取用户清单关联的客户号,用户清单中不同的用户关联不同的客户号;根据客户号,获取每个用户的短信通知号码。
在本实施例中,用户清单中包括有大批量的用户,每个用户都对应有一个不同的客户号。示例性的,用户清单可以是业务人员预先配置的特定白名单,并关联该特定白名单白名单客户号,存储在数据库表中。当使用Quartz触发定时任务开始作业时,通过查询数据库表,查找到该触发时点对应的触发条件为特定白名单,关联该特定白名单得到白名单客户号,然后基于白名单客户号,确定每个需要发送短信的用户的短信通知手机号。
其中,用户的短信通知手机号可以通过特定的隐藏方式隐藏(例如“****”),只有短信发送平台在进行发送短信时才能够识别出其中的具体内容以进行短信发送,而其它的时候则使用客户号,通过客户号与短信通知号码关联的方式,能够保证用户的隐私信息不会被泄露,提高信息安全性。
在另一些实施例中,上述步骤S305具体可以通过如下步骤实现:通过分布式框架Dubbo的远程调用机制,根据请求报文和交易码,调用短信发送服务;通过短信发送服务将每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文,其中,每个用户对应的参数互不相同,该用户对应的目标报文用于短信发送平台发送短信至该用户。
在本实施例中,短信发送服务可以是在Zookeeper的服务注册中心注册的微服务,在微服务在注册中心注册完成之后,当有短信发送请求时,由Dubbo调用注册中心的短信发送服务,由注册中心来响应短信发送请求并控制短信的发送。其中,远程调用机制又称为RPC,通过RPC,可以实现两台服务器之间的数据调用。例如两台服务器F1,F2,一个应用部署在F1服务器上,想要调用F2服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
其中,用户对应的参数可以是用户信息(例如用户的姓名),通常情况下每个用户对应的参数都互不相同。在本实施例中,为了提高短信内容的丰富性,发送至用户C1的短信除了包括上述短信内容之外,还可以通过短信发送服务调用用户C1对应的参数,并与短信内容组合得到目标报文,由此,用户C1在收到短信之后,除了可以查看到短信内容,还可以看到自身的参数(例如上述的用户C1的姓名),让用户C1可以清楚明确的知道该短信是发送给他的,而不是错误随机发送的,提高短信发送的效果。
进一步的,在动物园管理员Zookeeper的注册中心进行微服务注册;获取待发送的短信总数量,将待发送的短信划分为至少两个批次,并确定每个批次所需发送的短信数量;根据每个批次所需发送的短信数量,通过分布式框架Dubbo的远程调用机制,从注册中心调用与该批次所需发送短信数量相匹配的服务;通过每个被调用的服务,按照批次顺序,依次将每个批次中所需发送短信的每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文。
在本实施例中,Dubbo可以视为一个微服务的远程调用,动物园管理员Zookeeper可以视为提供了一个注册中心的功能,微服务在注册中心注册之后,供Dubbo进行远程调用。示例性的,在短信发送过程中,通常涉及到的是几十万甚至几百万的数据量,可以视为一个大文本,通过Dubbo+Zookeeper的方式可以将该大文本进行拆分(比如需要发送10000个用户,则可以拆分为10个批次,每个批次并发1000条短信),通过这种控制,在尽量快的时间内把所有的短信发送出去。其中,微服务的单个服务调用的都是同一个后台的应用,去完成短信的发送,即微服务可以对应的拆分出1000个服务,每个服务负责一个用户的短信发送,具体的,每个服务负责的内容可以包括目标报文的组织。
进一步的,还可以设置每个短信发送的流水号,在微服务接收到短信发送的请求报文时,微服务可以基于流水号进行查重,如果存在重复的流水号,则可能导致同一个用户收到重复的短信,为此需要将这些相同流水号的请求报文滤除,只保留下不相同的流水号对应的请求报文。如此可以避免同一个用户接收多条重复的短信,提高短信发送的效果和准确性。
本申请实施例通过使用Quartz,可以实现定时批量调度功能,同时,基于Dubbo+Zookeeper分布式框架,可以支持批量短信发送多并发处理,可以短时间内实现大批量的短信发送处理,处理效率高,并且业务人员可以灵活配置各项短信发送信息,可配置性和灵活性都得到提高,可以满足各种不同的短信发送业务场景,提高适用性。
示例性的,图5为本申请又一实施例提供的短信发送方法的流程示意图,以金融产品等级调整短信通知为例,产品等级由1级调整为2级,触发时点为当前时间5分钟之后,给特定白名单用户发送。如图5所示,包括如下步骤:步骤S511,业务人员登录技术中台,点击“短信维护”界面,新增一条短信模板,触发时间为5分钟后,触发条件为特定白名单客户。步骤S512,业务人员点击“保存”界面,后台保存该条记录进数据库表,并将定时任务写入Quartz作业中。步骤S521,Quartz轮询调度,如当前未到触发时点,正常结束;如到达触发时点,开始工作。步骤S522,查询数据库表,该条短信触发条件为特定白名单客户,关联白名单表获取白名单客户号。步骤S523,根据客户号获取客户短信通知手机号,获取短信模板内容,作为请求报文写入Dubbo指令表。步骤S531,Dubbo分布式调用机制,读取指令表,根据请求报文及交易码调用短信发送的程序。步骤S532,短信发送的程序负责组织生成报文,发送短信发送平台。
本实施例提供的大批量短信发送装置的开发语言为JAVA,使用了Quartz批量定时调度机制,基于Dubbo+Zookeeper的分布式架构,从而实现集群模式下短信并发处理,保证处理效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6为本申请实施例提供的短信发送装置的结构示意图,该短信发送装置可以集成在电子设备上,如图6所示,该短信发送装置600包括信息获取模块610、清单确定模块620、报文写入模块630、报文读取模块640和报文转发模块650。其中,信息获取模块610用于获取短信发送信息,短信发送信息至少包括短信内容、触发时点、触发条件。清单确定模块620用于在触发时点触发时,根据触发条件,确定待发送短信的用户清单,用户清单中包括至少一个用户。报文写入模块630用于查询用户清单中每个用户的短信发送号码,并将短信发送号码和短信内容作为请求报文写入指令表,指令表为Dubbo指令表。报文读取模块640用于通过分布式框架Dubbo的远程调用机制读取指令表中的请求报文。报文转发模块650用于将请求报文组织为目标报文并转发至短信发送平台,短信发送平台用于根据目标报文发送短信至每个用户。
可选的,还包括存储模块,用于将该短信发送信息保存至数据库表中;根据触发时点,建立定时任务,并将定时任务写入至任务调度框架Quartz的作业任务中。
可选的,清单确定模块具体可以用于:通过任务调度框架Quartz轮询作业任务,确定当前时刻是否为触发时点;若当前时刻为触发时点,则查询数据库表并根据数据库表中该触发时点对应的触发条件,确定用户清单。
可选的,报文写入模块具体可以用于:获取用户清单关联的客户号,用户清单中不同的用户关联不同的客户号;根据客户号,获取每个用户的短信通知号码。
可选的,报文转发模块具体可以用于:通过分布式框架Dubbo的远程调用机制,根据请求报文和交易码,调用短信发送服务;通过短信发送服务将每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文,其中,每个用户对应的参数互不相同,该用户对应的目标报文用于短信发送平台发送短信至该用户。
可选的,报文转发模块具体可以用于:在动物园管理员Zookeeper的注册中心进行微服务注册;获取待发送的短信总数量,将待发送的短信划分为至少两个批次,并确定每个批次所需发送的短信数量;根据每个批次所需发送的短信数量,通过分布式框架Dubbo的远程调用机制,从注册中心调用与该批次所需发送短信数量相匹配的服务;通过每个被调用的服务,按照批次顺序,依次将每个批次中所需发送短信的每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文。
可选的,报文转发模块具体可以用于:获取每个批次中每个请求报文的流水号,确定是否存在有相同的流水号;若存在相同的流水号,则将相同的流水号的请求报文滤除。
可选的,短信内容包括产品等级信息调整、产品到期信息通知中的至少一项。
本申请实施例提供的装置,可用于执行上述实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,信息获取模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上信息获取模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图7为本申请实施例提供的电子设备的结构示意图。如图7所示,该电子设备700包括:至少一个处理器701、存储器702、总线703及通信接口704。其中:处理器701、通信接口704以及存储器702通过总线703完成相互间的通信。通信接口用于与其它设备进行通信。该通信接口包括用于进行数据传输的通信接口以及用于进行人机交互的显示界面或者操作界面等。处理器,用于执行存储器存储的计算机执行指令,具体可以执行上述实施例中所描述的方法中的相关步骤。处理器可能是中央处理器,或者是特定集成电路(ApplicationSpecific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放计算机执行指令。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
本实施例还提供一种计算机可读存储介质,可读存储介质中存储有计算机指令,当电子设备的至少一个处理器执行该计算机指令时,电子设备执行上述的各种实施方式提供的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种短信发送方法,其特征在于,包括:
获取短信发送信息,所述短信发送信息至少包括短信内容、触发时点、触发条件;
在所述触发时点触发时,根据所述触发条件,确定待发送短信的用户清单,所述用户清单中包括至少一个用户;
查询所述用户清单中每个用户的短信发送号码,并将所述短信发送号码和短信内容作为请求报文写入指令表,所述指令表为分布式框架Dubbo指令表;
通过分布式框架Dubbo的远程调用机制读取所述指令表中的请求报文;
将所述请求报文组织为目标报文并转发至短信发送平台,所述短信发送平台用于根据所述目标报文发送短信至每个用户。
2.根据权利要求1所述的方法,其特征在于,所述在所述触发时点触发时之前,还包括:
将该短信发送信息保存至数据库表中;
根据所述触发时点,建立定时任务,并将所述定时任务写入至任务调度框架Quartz的作业任务中。
3.根据权利要求2所述的方法,其特征在于,所述在所述触发时点触发时,根据所述触发条件,确定待发送短信的用户清单,包括:
通过任务调度框架Quartz轮询所述作业任务,确定当前时刻是否为触发时点;
若当前时刻为触发时点,则查询所述数据库表并根据所述数据库表中该触发时点对应的触发条件,确定所述用户清单。
4.根据权利要求1所述的方法,其特征在于,所述查询所述用户清单中每个用户的短信发送号码,包括:
获取所述用户清单关联的客户号,所述用户清单中不同的用户关联不同的客户号;
根据所述客户号,获取每个用户的短信通知号码。
5.根据权利要求1所述的方法,其特征在于,所述将所述请求报文组织为目标报文,包括:
通过分布式框架Dubbo的远程调用机制,根据所述请求报文和交易码,调用短信发送服务;
通过所述短信发送服务将每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文,其中,每个用户对应的参数互不相同,该用户对应的目标报文用于所述短信发送平台发送短信至该用户。
6.根据权利要求5所述的方法,其特征在于,所述通过所述短信发送服务将每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文,包括:
在动物园管理员Zookeeper的注册中心进行微服务注册;
获取待发送的短信总数量,将所述待发送的短信划分为至少两个批次,并确定每个批次所需发送的短信数量;
根据每个批次所需发送的短信数量,通过所述分布式框架Dubbo的远程调用机制,从所述注册中心调用与该批次所需发送短信数量相匹配的服务;
通过每个被调用的服务,按照批次顺序,依次将每个批次中所需发送短信的每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文。
7.根据权利要求6所述的方法,其特征在于,所述通过每个被调用的服务,按照批次顺序,依次将每个批次中所需发送短信的每个用户对应的参数和该用户对应的请求报文组织为该用户对应的目标报文之前,还包括:
获取每个批次中每个请求报文的流水号,确定是否存在有相同的流水号;
若存在相同的流水号,则将相同的流水号的请求报文滤除。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述短信内容包括产品等级信息调整、产品到期信息通知中的至少一项。
9.一种短信发送装置,其特征在于,包括:
信息获取模块,用于获取短信发送信息,所述短信发送信息至少包括短信内容、触发时点、触发条件;
清单确定模块,用于在所述触发时点触发时,根据所述触发条件,确定待发送短信的用户清单,所述用户清单中包括至少一个用户;
报文写入模块,用于查询所述用户清单中每个用户的短信发送号码,并将所述短信发送号码和短信内容作为请求报文写入指令表,所述指令表为分布式框架Dubbo指令表;
报文读取模块,用于通过分布式框架Dubbo的远程调用机制读取所述指令表中的请求报文;
报文转发模块,用于将所述请求报文组织为目标报文并转发至短信发送平台,所述短信发送平台用于根据所述目标报文发送短信至每个用户。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310664321.0A CN116723473A (zh) | 2023-06-06 | 2023-06-06 | 短信发送方法、装置、设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310664321.0A CN116723473A (zh) | 2023-06-06 | 2023-06-06 | 短信发送方法、装置、设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116723473A true CN116723473A (zh) | 2023-09-08 |
Family
ID=87865347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310664321.0A Pending CN116723473A (zh) | 2023-06-06 | 2023-06-06 | 短信发送方法、装置、设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116723473A (zh) |
-
2023
- 2023-06-06 CN CN202310664321.0A patent/CN116723473A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2017202007B2 (en) | Notification feed across multiple client devices | |
US9866510B2 (en) | Coordinated notifications across multiple channels | |
EP3108634B1 (en) | Facilitating third parties to perform batch processing of requests requiring authorization from resource owners for repeat access to resources | |
WO2017214212A1 (en) | Dynamic outgoing message modification | |
US8326913B2 (en) | Method and system for service contract discovery | |
CN108833584B (zh) | 消息推送方法、终端、服务器及计算机存储介质 | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114338793A (zh) | 消息推送方法、装置、电子设备及可读存储介质 | |
CN107015855B (zh) | 一种支持时间策略的异步服务集中调度方法及装置 | |
CN116627333A (zh) | 日志缓存方法、装置、电子设备及计算机可读存储介质 | |
CN113010238A (zh) | 一种微应用调用接口的权限确定方法、装置和系统 | |
US9577967B2 (en) | Method and system for managing an informational site using a social networking application | |
CN116723473A (zh) | 短信发送方法、装置、设备和可读存储介质 | |
CN113645260A (zh) | 业务重试方法、装置、存储介质及电子设备 | |
CA2835193A1 (en) | Email address and telephone number unification systems and methods | |
CN114095510B (zh) | 多日历账户同步、处理方法、装置、电子设备、存储介质 | |
CN111652580B (zh) | 一种对节点的数据处理方法及装置 | |
CN111506644B (zh) | 一种应用数据处理方法、装置和电子设备 | |
US11799982B2 (en) | Message push method, apparatus, device and medium | |
CN117478535B (zh) | 一种日志存储的方法和装置 | |
CN113419796A (zh) | 数据转换方法、终端及存储介质 | |
CN116795510A (zh) | 定时信息的调度方法、装置、设置、介质和程序 | |
CN116233077A (zh) | 一种数据处理方法及装置 | |
CN116828059A (zh) | 基于LwM2M的资源订阅方法、装置、设备和存储介质 | |
CN116208580A (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 |