一种邮件分发方法及装置与流程

文档序号:31671179发布日期:2022-09-28 00:58阅读:42来源:国知局
一种邮件分发方法及装置与流程

1.本发明涉及互联网技术领域,尤其涉及一种邮件分发方法及装置。


背景技术:

2.随着互联网技术的迅速发展,全球广域网(world wide web,web)项目也越来越多。在实际应用过程中,当企业应用系统监测到大量异常业务数据时,企业应用系统需要邮件通知客户。这样,在短时间内会有大量的邮件发送请求从客户端发出,瞬间流量巨大,易导致服务器网络异常,用户无法访问的情况发生。


技术实现要素:

3.有鉴于此,本发明实施例的目的在于提出一种邮件分发方法、装置及可读介质,既可以使服务器处理变得更加平稳,又可以节省服务器的资源成本。
4.本发明实施例的一方面提供了一种邮件分发方法,该方法包括:
5.检测邮件队列中是否存在待发送的邮件对象;
6.当检测到邮件队列中存在待发送的邮件对象时,从邮件队列的队首获取第一邮件对象,第一邮件对象包括第一收件人和第一邮件内容;
7.将第一邮件内容发送给第一收件人对应的设备。
8.进一步的,在检测邮件队列中是否存在待发送的邮件对象之前,还包括:
9.生成待发送的第一消息,第一消息包括第一收件人和第一邮件内容;
10.将第一消息封装为第一邮件对象;
11.将第一邮件对象加入邮件队列中。
12.进一步的,生成待发送的第一消息,包括:
13.当监测到第一业务数据出现异常时,生成第一消息,第一消息用于通知第一收件人业务数据出现异常。
14.进一步的,在将第一邮件内容发送给第一收件人对应的设备之后,还包括:
15.消除邮件队列中第一邮件对象;
16.将邮件队列中第二邮件对象作为邮件队列的队首。
17.进一步的,在将第一邮件内容发送给第一收件人对应的设备之后,还包括:
18.记录第一邮件内容的发送结果,发送结果包括发送成功和发送失败。
19.进一步的,当发送结果为发送失败时,分析失败原因;
20.记录失败原因。
21.进一步的,在检测邮件队列中是否存在待发送的邮件对象之前,还包括:
22.配置邮箱服务器的基本信息,基本信息包括ip地址、端口、账户和密码;
23.创建邮件发送工具类和服务接口,邮件发送工具类和服务接口用于根据基本信息传入收件人、邮件内容以发送邮件。
24.基于上述目的,本发明实施例的一方面提供了一种邮件分发装置,该装置包括:
25.检测模块、获取模块和发送模块,其中,
26.检测模块用于检测邮件队列中是否存在待发送的邮件对象;
27.获取模块用于当检测到邮件队列中存在待发送的邮件对象时,从邮件队列的队首获取第一邮件对象,第一邮件对象包括第一收件人和第一邮件内容;
28.发送模块用于将第一邮件内容发送给第一收件人对应的设备。
29.基于上述目的,本发明实施例的一方面提供了一种计算机设备,其包括:
30.至少一个处理器;以及
31.存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述所述方法的步骤。
32.基于上述目的,本发明实施例的一方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述所述方法的步骤。
33.本发明至少具有以下有益技术效果:
34.本发明实施例,通过使用队列存储待发送的多个消息(或称邮件),解决邮件大批量同时发送时引起的网络异常。另外,利用队列集合先进先出的特性,按照待发送的多个消息生成顺序,发送邮件至相应的收件人,保证系统的稳定性。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
36.图1为本发明提供的一种邮件分发方法的实施例的示意图;
37.图2为本发明提供的一种邮件分发方法的应用示意图;
38.图3为本发明提供的一种邮件分发装置的实施例的示意图;
39.图4为本发明提供的计算机设备的实施例的示意图;
40.图5为本发明提供的计算机可读存储介质的实施例的示意图。
具体实施方式
41.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
42.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
43.基于上述目的,本发明实施例的第一个方面,提出了一种邮件分发方法的实施例。在邮件分发之前需要做如下工作:
44.1、配置邮箱服务器。具体的,配置邮箱服务器的基本信息,基本信息包括ip地址、端口、账户和密码。创建邮件发送工具类和服务接口,邮件发送工具类和服务接口用于根据基本信息传入收件人、邮件内容以发送邮件。
45.2、创建消息队列接收任务中心。具体的,消息队列接收任务中心用于负责消息的接收、存储。消息队列接收任务中心提供接收消息接口,该接收消息接口用于接收消息,并存储至消息队列中。队列接收中心使用队列工具类自带的offer方法,把消息存储至消息队列的最后面。消息任务接收中心作为消息接收的入口,统一存储消息,保障消息接收、存储的稳定性。当系统检测到消息队列中存在待发送的消息时,从消息队列中获取队首的消息,并发送消息至收件人。同时记录消息是否发送成功。对于发送失败的消息,可以支持再次发送。
46.以下对邮件分发进行具体介绍:图1示出的是本发明提供的一种邮件分发方法的实施例的示意图。如图1所示,本发明实施例的一种邮件分发方法可以包括:
47.s101、生成待发送的第一消息,第一消息包括第一收件人和第一邮件内容。
48.具体的,当监测到第一业务数据出现异常时,生成第一消息,第一消息用于通知第一收件人业务数据出现异常。
49.示例性的,如图2所示,当业务功能模块1出现异常时,业务功能模块1的业务数据出现异常。此时,生成第一消息,该第一消息包括第一收件人和第一邮件内容。同理,当业务功能模块2出现异常时,业务功能模块2的业务数据出现异常。此时,生成第二消息,该第二消息包括第二收件人和第二邮件内容。同理,当业务功能模块3出现异常时,业务功能模块3的业务数据出现异常。此时,生成第三消息,该第三消息包括第三收件人和第三邮件内容。
50.s102、将第一消息封装为第一邮件对象。
51.具体为,把消息信息的内容、收件人字段封装到邮件对象类中。
52.同理,沿用上述示例,将第二消息封装为第二邮件对象。将第三消息封装为第三邮件对象。
53.s103、将第一邮件对象加入邮件队列中。
54.具体的,调用消息队列接收任务中心提供的接收消息接口,自动把当前待发送的邮件信息存储至消息队列中,该消息队列根据队列数据结构特性把当前邮件信息存储至消息队列的队尾,从而保证能够根据放入消息队列的先后顺序进行邮件发送。
55.沿用上述示例,将第一邮件对象加入邮件队列中,且位于邮件队列的队首;将第二邮件对象加入邮件队列中,且位于邮件队列的队中;将第三邮件对象加入邮件队列中,且位于邮件队列的队尾。
56.在本发明实施例中,业务功能模块工作过程中生成消息数据后,通过把待发送的消息存放至消息队列中,消息队列执行邮件发送,无需等待邮件发送结果,有效降低了消息的产生与邮件发送两个功能模块的耦合性,同时提高了系统响应速度、系统应用稳定性,缓解高并发对服务器产生的压力。
57.在完成上述s101-s103之后,在邮件队列中可以存在待发送的消息或邮件对象,当然,也可以不存在待发送的消息或邮件对象。那么,需要对邮件队列进行检测,具体如下:
58.s104、检测邮件队列中是否存在待发送的邮件对象。
59.s105、当检测到邮件队列中存在待发送的邮件对象时,从邮件队列的队首获取第一邮件对象,第一邮件对象包括第一收件人和第一邮件内容。
60.具体的,通过邮件队列的poll方法,获取邮件队列队首的第一条邮件对象,从该邮件对象中获取邮件内容、收件人信息等。
61.s106、将第一邮件内容发送给第一收件人对应的设备。
62.具体的,调用邮件发送方法将第一邮件内容发送给第一收件人对应的设备。
63.本发明实施例,采用多线程模式,异步调用邮件发送方法来发送当前消息至对应的邮件收件人,能够有效提高邮件发送的效率。
64.在将第一邮件内容发送给第一收件人对应的设备之后,还包括:消除邮件队列中第一邮件对象。将邮件队列中第二邮件对象作为邮件队列的队首。
65.沿用上述示例,当将第一邮件内容发送给第一收件人对应的设备之后,将邮件队列中第一邮件对象消除,并将邮件队列中第二邮件对象作为邮件队列的队首,将邮件队列中第三邮件对象作为邮件队列的队中,同理依次调整。
66.另外,在将第一邮件内容发送给第一收件人对应的设备之后,还包括:记录第一邮件内容的发送结果,发送结果包括发送成功和发送失败。当发送结果为发送失败时,分析失败原因,并记录失败原因,并支持重新发送邮件。
67.综上,本发明实施例,通过使用队列存储待发送的多个消息(或称邮件),解决邮件大批量同时发送时引起的网络异常。另外,利用队列集合先进先出的特性,按照待发送的多个消息生成顺序,发送邮件至相应的收件人,保证系统的稳定性。
68.基于上述目的,本发明实施例的第二个方面,提出了一种邮件分发装置,图3示出的是本发明提供的邮件分发装置的实施例的示意图。如图3所示,该邮件分发装置300可以包括:检测模块301、获取模块302和发送模块303,其中,
69.检测模块301用于检测邮件队列中是否存在待发送的邮件对象;
70.获取模块302用于当检测到邮件队列中存在待发送的邮件对象时,从邮件队列的队首获取第一邮件对象,第一邮件对象包括第一收件人和第一邮件内容;
71.发送模块303用于将第一邮件内容发送给第一收件人对应的设备。
72.本发明还提供了一种计算机设备。图4示出的是本发明提供的计算机设备的实施例的示意图。如图4所示,本发明实施例的计算机设备包括:至少一个处理器021;以及存储器022,所述存储器022存储有可在所述处理器021上运行的计算机指令023,所述指令023由所述处理器021执行时实现上述所述方法。
73.本发明还提供了一种计算机可读存储介质。图5示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图5所示,计算机可读存储介质031存储有被处理器执行时执行如上方法的计算机程序032。
74.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,单据预警的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
75.此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
76.此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实
现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
77.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
78.在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、d0l或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
79.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
80.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
81.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
82.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
83.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1