一种邮件处理方法、装置和系统与流程

文档序号:11842345阅读:157来源:国知局
一种邮件处理方法、装置和系统与流程
本发明涉及互联网应用的邮件功能
技术领域
,尤其涉及一种邮件处理方法、装置和系统。
背景技术
:目前互联网的很多应用中都嵌入有邮件功能,用以实现用户间的邮件收发以及系统邮件下发等等,该邮件功能是一种有效的解决消息和道具物品内容传递的方式。邮件可以带附件也可以不带附件,附件可用于携带道具物品内容。现有的邮件功能大多存在以下问题:1、系统邮件冗余存储,浪费存储空间。现有技术中的同一封系统邮件需要存储在适用的所有用户的邮箱中,相同内容重复占据了用户邮箱空间,产生不必要的存储空间浪费。2、由于用户邮箱容量有限,很容易达到存储上限。用户邮箱一般以邮件数量或内容存储大小作为上限值,对于每个用户都存储完整系统邮件的情况下,用户邮箱很容易达到存储上限。3、邮件列表功能单一,对邮件的排序、过滤和删除等处理成本较高。技术实现要素:为解决现有存在的技术问题,本发明实施例提供一种邮件处理方法、装置和系统。本发明实施例提供了一种邮件处理方法,所述方法包括:属于同一应用的至少一台应用服务器共享系统邮件索引数据库,所述系统邮件索引数据库中包括所述应用的每个用户的系统邮件索引集合,每个系统邮件索引集合中包括相应用户的系统邮件索引信息;每台应用服务器中保存所述 应用的系统邮件内容;所述应用服务器在获取到向用户提供系统邮件列表的指令后,根据用户标识查找所述数据库获得相应用户的系统邮件索引集合,并根据所述系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。上述方案中,所述方法还包括:所述应用服务器在查找数据库获得相应用户的系统邮件索引集合后,将所述系统邮件索引集合中的系统邮件索引信息与所述应用服务器保存的所述系统邮件内容进行比较,判断所述应用服务器中是否存在相应用户的新增系统邮件;在判断存在新增系统邮件时,判断相应用户是否满足所述新增系统邮件的下发条件,并在判断满足时,根据所述新增系统邮件生成相应的新增系统邮件索引信息更新到所述数据库的相应用户的系统邮件索引集合中;相应的,根据更新后的系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。上述方案中,所述系统邮件索引信息由以下至少一个信息项组成:系统邮件ID、系统邮件是否已读标记、附件是否领取标记、邮件时间。上述方案中,所述方法还包括:所述应用服务器在收到来自用户的客户端的系统邮件详情请求消息时,根据所述请求消息中携带的邮件ID,在所述应用服务器本地保存的系统邮件内容中查找与所述邮件ID匹配的系统邮件内容,并将查找所得的系统邮件内容返回给所述用户的客户端。上述方案中,所述方法还包括:所述应用服务器检测所述客户端的用户操作,在确定所述标记的内容发生改变时,相应修改所述数据库中对应用户的系统邮件索引信息中的标记设置。上述方案中,所述方法还包括:通过以下方式对所述数据库中的系统邮件索引信息进行过期处理:周期性或非周期性的在所述数据库中检查所有用户的系统邮件索引集合中 的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期,并对过期的系统邮件索引信息进行删除;和/或,在获取到向用户提供系统邮件列表的指令,并根据用户标识查找所述数据库获得相应用户的系统邮件索引集合后,检查所述系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期,并对过期的系统邮件索引信息进行删除。上述方案中,所述方法还包括:所述应用服务器在收到来自用户的客户端的针对系统邮件索引信息的操作请求消息时,根据所述操作请求消息中的操作提示信息、以及所述系统邮件索引信息中的信息项,执行对所述系统邮件索引信息的相应操作,并将操作结果返回给所述用户的客户端;其中,所述操作包括:删除系统邮件索引信息、系统邮件索引信息排序、系统邮件索引信息过滤。上述方案中,所述方法还包括:所述每台应用服务器中保存的系统邮件内容来自于特定的系统邮件存储数据库,所述数据库支持系统邮件管理端对其数据库内保存的系统邮件内容进行更新;相应的,所述应用服务器周期性或非周期性的访问所述系统邮件存储数据库,并在确定相比所述应用服务器本地保存的系统邮件内容有更新时,相应更新所述应用服务器本地保存的系统邮件内容,以保持所述应用服务器本地保存的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。本发明实施例还提供了一种邮件处理装置,应用于应用服务器中,属于同一应用的至少一台应用服务器共享系统邮件索引数据库,所述系统邮件索引数据库中包括所述应用的每个用户的系统邮件索引集合,每个系统邮件索引集合中包括相应用户的系统邮件索引信息;每台应用服务器中保存所述应用的系统邮件内容;所述装置包括:存储单元,用于保存所述应用的系统邮件内容;指令获得单元,用于获取向用户提供系统邮件列表的指令;邮件处理单元,用于在获得所述指令后,根据用户标识查找所述数据库获得相应用户的系统邮件索引集合,并根据所述系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。上述方案中,所述邮件处理单元进一步用于,在查找数据库获得相应用户的系统邮件索引集合后,将所述系统邮件索引集合中的系统邮件索引信息与所述应用服务器保存的所述系统邮件内容进行比较,判断所述应用服务器中是否存在相应用户的新增系统邮件;在判断存在新增系统邮件时,判断相应用户是否满足所述新增系统邮件的下发条件,并在判断满足时,根据所述新增系统邮件生成相应的新增系统邮件索引信息更新到所述数据库的相应用户的系统邮件索引集合中;相应的,根据更新后的系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。上述方案中,所述系统邮件索引信息由以下至少一个信息项组成:系统邮件ID、系统邮件是否已读标记、附件是否领取标记、邮件时间。上述方案中,所述装置还包括:消息接收单元,用于接收来自用户的客户端的系统邮件详情请求消息;所述邮件处理单元进一步用于,在所述消息接收单元收到来自用户的客户端的系统邮件详情请求消息时,根据所述请求消息中携带的邮件ID,在所述存储单元中查找与所述邮件ID匹配的系统邮件内容,并将查找所得的系统邮件内容返回给所述用户的客户端。上述方案中,所述邮件处理单元进一步用于,检测所述客户端的用户操作,在确定所述标记的内容发生改变时,相应修改所述数据库中对应用户的系统邮件索引信息中的标记设置。上述方案中,所述邮件处理单元进一步用于通过以下方式对所述数据库中的系统邮件索引信息进行过期处理:周期性或非周期性的在所述数据库中检查所有用户的系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期, 并对过期的系统邮件索引信息进行删除;和/或,在获取到向用户提供系统邮件列表的指令,并根据用户标识查找所述数据库获得相应用户的系统邮件索引集合后,检查所述系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期,并对过期的系统邮件索引信息进行删除。上述方案中,所述装置还包括:消息接收单元,用于接收来自用户的客户端的针对系统邮件索引信息的操作请求消息;所述邮件处理单元进一步用于,根据所述操作请求消息中的操作提示信息、以及所述系统邮件索引信息中的信息项,执行对所述系统邮件索引信息的相应操作,并将操作结果返回给所述用户的客户端;其中,所述操作包括:删除系统邮件索引信息、系统邮件索引信息排序、系统邮件索引信息过滤。上述方案中,所述每台应用服务器中保存的系统邮件内容来自于特定的系统邮件存储数据库,所述数据库支持系统邮件管理端对其数据库内保存的系统邮件内容进行更新;所述邮件处理单元进一步用于,周期性或非周期性的访问所述系统邮件存储数据库,并在确定相比所述存储单元中的系统邮件内容有更新时,相应更新所述存储单元中的系统邮件内容,以保持所述存储单元中的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。本发明实施例还提供了一种邮件处理系统,包括属于同一应用的至少一台应用服务器及其共享的系统邮件索引数据库,所述系统邮件索引数据库中包括所述应用的每个用户的系统邮件索引集合,每个系统邮件索引集合中包括相应用户的系统邮件索引信息;每台应用服务器中保存所述应用的系统邮件内容;所述应用服务器包括本发明实施例所述的邮件处理装置。上述方案中,所述系统还包括:系统邮件存储数据库,用于保存所述应用的系统邮件内容;系统邮件管理端,用于对所述系统邮件存储数据库内保存的系统邮件内容 进行管理和更新;所述系统邮件存储数据库还用于接收所述应用服务器的周期性或非周期性访问,以对所述应用服务器内保存的系统邮件内容进行更新,保持所述应用服务器内保存的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。本发明实施例提供的一种邮件处理方法、装置和系统,通过引入系统邮件索引数据库和应用服务器本地缓存所有系统邮件内容的机制,而且系统邮件详情在系统邮件存储数据库中只保存一份,而区别于现有技术中在每个用户的邮箱中都分别保存一份该用户完整的系统邮件详情(存在大量重复的系统邮件详情),这就有效避免了用户邮箱存储完整系统邮件内容所带来的冗余存储问题,最大程度降低了用户的邮件存储消耗,大幅节省了用户邮件存储空间;同时,通过对系统邮件索引的操作代替现有技术中对系统邮件内容本身的操作,例如:系统邮件列表拉取、标记修改、以及删除排序等操作都只是通过操作系统邮件索引信息即可,而不再涉及如现有技术中对系统邮件详情内容的操作和存储,这样有效降低了系统邮件列表过程中的排序、过滤和删除等操作成本,也提高了操作效率。附图说明图1为本发明实施例一的邮件处理方法流程图;图2为本发明实施例二的邮件处理装置的结构示意图;图3为本发明实施例三的邮件处理系统的结构示意图一;图4为本发明实施例三的邮件处理系统的结构示意图二;图5为本发明实施例四的网络游戏中的邮件处理系统的结构示意图;图6为本发明实施例五的网络游戏中的邮件处理系统的结构示意图。具体实施方式下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。实施例一本发明实施例一提供一种邮件处理方法,该方法中,属于同一应用的至少一台应用服务器共享系统邮件索引数据库,所述系统邮件索引数据库中包括所述应用的每个用户的系统邮件索引集合,每个系统邮件索引集合中包括相应用户的系统邮件索引信息;每台应用服务器中保存所述应用的系统邮件内容;如图1所示,所述方法包括:步骤101,应用服务器获取向用户提供系统邮件列表的指令。实际应用中,通常针对同一应用会有多台应用服务器来提供服务,这些应用服务器在本发明实施例中共享同一个系统邮件索引数据库;本发明实施例在系统邮件索引数据库中构建针对所述应用的每个用户的系统邮件索引集合,每个用户的系统邮件索引集合中包括相应用户的系统邮件索引信息。也就是说,针对该用户的每封系统邮件,会根据其系统邮件内容生成一条对应的系统邮件索引信息,该系统邮件索引信息中包括以下信息项的至少之一:系统邮件标识(ID)、系统邮件是否已读标记、附件是否领取标记、邮件时间;其中,系统邮件ID是一封系统邮件的唯一标识,系统邮件是否已读标记用于标识所述系统邮件是否已被用户读取,附件是否领取标记用于标识所述系统邮件中的附件是否已被用户领取,邮件时间用于记录所述系统邮件的产生时间。以上各信息项都是可以从一份系统邮件的邮件内容中提取出来的。由此可见,本发明实施例中的系统邮件索引数据库中保存和维护有相应应用的每个用户的系统邮件索引集合,且每个用户的系统邮件索引集合中包括相应用户的系统邮件索引信息,每个用户的系统邮件索引集合中的每一条系统邮件索引信息都对应了该用户的一条系统邮件内容(相当于现有技术中该用户的邮箱中的一条系统邮件内容)。每一条系统邮件索引信息由系统邮件ID进行标识,且每一条系统邮件索引信息中还至少包括了系统邮件是否已读标记、附件是否领取标记、邮件时间等信息。其中,用户的系统邮件索引集合中的系统邮件索引信息可以以列表的形式存在,每个用户的系统邮件索引集合可以用该用户的用户ID来唯一的标识。应用服务器可以在用户通过客户端登录时,获得向用户提供系统邮件列表的指令;或者,应用服务器也可以在用户通过客户端登录,且向应用服务器发送系统邮件列表请求消息时,获得向用户提供系统邮件列表的指令。步骤102,应用服务器根据用户标识查找所述数据库获得相应用户的系统邮件索引集合,并根据所述系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。应用服务器获得向用户提供系统邮件列表的指令后,根据相应的用户ID查找系统邮件索引数据库,获得与所述用户ID相对应的系统邮件索引集合,如果所述系统邮件索引集合中的系统邮件索引信息是以列表的形式存在,那么可以直接将所述系统邮件索引集合中的系统邮件索引信息列表返回给相应用户的客户端;如果所述系统邮件索引集合中的系统邮件索引信息不是以列表的形式存在,那么可以根据系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表并返回给相应用户的客户端。在一实施方式中,应用服务器在查找数据库获得相应用户的系统邮件索引集合后,将所述系统邮件索引集合中的系统邮件索引信息与所述应用服务器保存的所述系统邮件内容进行比较,判断所述应用服务器中是否存在相应用户的新增系统邮件;在判断存在新增系统邮件时,判断相应用户是否满足所述新增系统邮件的下发条件,并在判断满足时,根据所述新增系统邮件生成相应的新增系统邮件索引信息更新到所述数据库的相应用户的系统邮件索引集合中;相应的,根据更新后的系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。其中,所述系统邮件是指应用的系统下发给全体用户或特定范围的用户群的邮件,如系统通知邮件、系统道具下发邮件等等。在判断存在新增系统邮件时,进一步判断相应用户是否满足所述新增系统邮件的下发条件(通常,所述新增系统邮件的下发条件是随所述新增系统邮件在应用服务器对应保存的),所述下发条件可以是用户所属的ID范围、年龄、 性别等等,本发明实施例不对下发条件进行限制;在判断满足下发条件时,根据所述新增系统邮件生成相应的新增系统邮件索引信息并更新到所述数据库的相应用户的系统邮件索引集合中,也就是说,根据所述新增系统邮件提取相应的系统邮件索引信息,并将提取的系统邮件索引信息加入到所述数据库的相应用户的系统邮件索引集合中,作为所述系统邮件索引集合中一条新的系统邮件索引信息;在判断不满足下发条件时,则保持所述数据库中相应用户的系统邮件索引集合内的系统邮件索引信息不变;在判断不存在新增系统邮件时,也保持所述数据库中相应用户的系统邮件索引集合内的系统邮件索引信息不变。相应的,在有新增系统邮件,且将新增系统邮件的系统邮件索引信息加入到所述数据库的相应用户的系统邮件索引集合中进行更新后,应用服务器会根据更新后的系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。在一实施方式中,所述方法还包括:所述应用服务器在收到来自用户的客户端的系统邮件详情请求消息时,根据所述请求消息中携带的邮件ID,在所述应用服务器本地保存的系统邮件内容中查找与所述邮件ID匹配的系统邮件内容,并将查找所得的系统邮件内容返回给所述用户的客户端。具体的,用户不仅有获取系统邮件列表的需求,用户还有获取相应系统邮件详情的需求,在用户的客户端获得相应用户的系统邮件列表后,用户可以通过客户端向应用服务器发起获得某系统邮件详情的请求消息,该请求消息中可以携带所请求的邮件ID,该邮件ID是客户端从获取的系统邮件列表中获得的;应用服务器收到用户的系统邮件详情请求消息时,根据所述请求消息中携带的邮件ID,在本地保存的系统邮件内容中查找相匹配的系统邮件内容,从而将查找获得的系统邮件内容返回给所述用户的客户端。在一实施方式中,所述方法还可包括:所述应用服务器检测所述客户端的用户操作,在确定所述系统邮件索引信息中标记的内容(如系统邮件是否已读标记、附件是否领取标记)发生改变时,相应修改所述系统邮件索引数据库中 对应用户的系统邮件索引信息中的标记设置。具体的,应用服务器将相应用户的系统邮件列表返回给相应用户的客户端后,检测客户端的用户操作,当发现用户读取了一封未读的系统邮件索引信息后,相应的将系统邮件索引数据库中对应用户的系统邮件索引信息中的系统邮件是否已读标记设置为已读;和/或,当发现用户领取了一封系统邮件的附件后,相应的将系统邮件索引数据库中对应用户的系统邮件索引信息中的附件是否领取标记设置为已领取。在一实施方式中,所述方法还包括:应用服务器通过以下方式对所述数据库中的系统邮件索引信息进行过期处理:周期性或非周期性的在所述数据库中检查所有用户的系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期(可以将邮件时间与当前时间进行对比,若差值大于等于预定阈值,则判断过期,否则判断不过期),并对过期的系统邮件索引信息进行删除;和/或,在获取到向用户提供系统邮件列表的指令,并根据用户标识查找所述数据库获得相应用户的系统邮件索引集合后,检查所述系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期(可以将邮件时间与当前时间进行对比,若差值大于等于预定阈值,则判断过期,否则判断不过期),并对过期的系统邮件索引信息进行删除;这种情况下,返回给用户客户端的系统邮件列表是依据经过所述过期处理后的系统邮件索引集合中的系统邮件索引信息生成的。在一实施方式中,所述方法还包括:所述应用服务器在收到来自用户的客户端的针对系统邮件索引信息的操作请求消息时,根据所述操作请求消息中的操作提示信息、以及所述系统邮件索引信息中的信息项,执行对所述系统邮件索引信息的相应操作,并将操作结果返回给所述用户的客户端;其中,所述操作包括:删除系统邮件索引信息、系统邮件索引信息排序、系统邮件索引信息过滤。具体的,所述应用服务器在收到来自用户的客户端的针对某系统邮件索引信息的删除请求消息时,根据所述删除请求消息中的用户ID和邮件ID,查找到所述系统邮件索引数据库中相应用户的系统邮件索引集合中的系统邮件索引信息,并执行所述系统邮件索引信息的删除;所述应用服务器在收到来自用户的客户端的系统邮件索引信息的排序请求消息时,根据所述排序请求消息中的用户ID和排序条件,查找到所述系统邮件索引数据库中相应用户的系统邮件索引集合中的相应系统邮件索引信息,并按所述排序条件对所述相应系统邮件索引信息进行排序;所述应用服务器在收到来自用户的客户端的系统邮件索引信息的过滤请求消息时,根据所述过滤请求消息中的用户ID,查找到所述系统邮件索引数据库中相应用户的系统邮件索引集合中的系统邮件索引信息,并获得按所述过滤条件对所述相应系统邮件索引信息进行过滤后的结果。在一实施方式中,所述方法还包括:所述每台应用服务器中保存的系统邮件内容来自于特定的系统邮件存储数据库,所述数据库支持系统邮件管理端对其数据库内保存的系统邮件内容进行更新;相应的,所述应用服务器周期性或非周期性的访问所述系统邮件存储数据库,并在确定相比所述应用服务器本地保存的系统邮件内容有更新时,相应更新所述应用服务器本地保存的系统邮件内容,以保持所述应用服务器本地保存的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。具体的,本发明实施例中由特定的系统邮件存储数据库来存储应用的所有系统邮件内容,而各应用服务器中则分别保存对所述系统邮件存储数据库中系统邮件内容的拷贝;也就是说,所述系统邮件存储数据库和每个应用服务器中只保存一份完整的系统邮件,不存在重复的系统邮件,这也就大大降低了系统邮件的存储所占空间(现有技术中在每个用户的邮箱中都要存储一份系统邮件,造成重复存储)。总之,本发明实施例一通过引入系统邮件索引数据库和应用服务器本地缓存所有系统邮件内容的机制,有效避免了用户邮箱存储完整系统邮件内容所带 来的冗余存储问题,最大程度降低了用户邮件存储消耗,大幅节省了用户邮件存储空间;同时,通过对系统邮件索引的操作代替现有技术中对系统邮件内容本身的操作,有效降低了系统邮件列表过程中的排序、过滤和删除等操作成本。实施例二对应本发明的实施例一,本发明实施例二还提供了一种邮件处理装置,应用于应用服务器中,属于同一应用的至少一台应用服务器共享系统邮件索引数据库,所述系统邮件索引数据库中包括所述应用的每个用户的系统邮件索引集合,每个系统邮件索引集合中包括相应用户的系统邮件索引信息;每台应用服务器中保存所述应用的系统邮件内容;如图2所示,所述装置包括:存储单元10,用于保存所述应用的系统邮件内容;指令获得单元20,用于获取向用户提供系统邮件列表的指令;邮件处理单元30,用于在获得所述指令后,根据用户标识查找所述数据库获得相应用户的系统邮件索引集合,并根据所述系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。在一实施方式中,邮件处理单元30进一步用于,在查找数据库获得相应用户的系统邮件索引集合后,将所述系统邮件索引集合中的系统邮件索引信息与所述应用服务器保存的所述系统邮件内容进行比较,判断所述应用服务器中是否存在相应用户的新增系统邮件;在判断存在新增系统邮件时,判断相应用户是否满足所述新增系统邮件的下发条件,并在判断满足时,根据所述新增系统邮件生成相应的新增系统邮件索引信息更新到所述数据库的相应用户的系统邮件索引集合中;相应的,根据更新后的系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。其中,所述系统邮件是指应用的系统下发给全体用户或特定范围的用户群的邮件,如系统通知邮件、系统道具下发邮件等等。在判断存在新增系统邮件时,邮件处理单元30进一步判断相应用户是否满 足所述新增系统邮件的下发条件(通常,所述新增系统邮件的下发条件是随所述新增系统邮件在应用服务器对应保存的),所述下发条件可以是用户所属的ID范围、年龄、性别等等,本发明实施例不对下发条件进行限制;在判断满足下发条件时,根据所述新增系统邮件生成相应的新增系统邮件索引信息并更新到所述数据库的相应用户的系统邮件索引集合中,也就是说,根据所述新增系统邮件提取相应的系统邮件索引信息,并将提取的系统邮件索引信息加入到所述数据库的相应用户的系统邮件索引集合中,作为所述系统邮件索引集合中一条新的系统邮件索引信息;在判断不满足下发条件时,则保持所述数据库中相应用户的系统邮件索引集合内的系统邮件索引信息不变;在判断不存在新增系统邮件时,也保持所述数据库中相应用户的系统邮件索引集合内的系统邮件索引信息不变。相应的,在有新增系统邮件,且将新增系统邮件的系统邮件索引信息加入到所述数据库的相应用户的系统邮件索引集合中进行更新后,邮件处理单元30会根据更新后的系统邮件索引集合中的系统邮件索引信息生成相应用户的系统邮件列表返回给相应用户的客户端。在一实施方式中,所述系统邮件索引信息由以下至少一个信息项组成:系统邮件ID、系统邮件是否已读标记、附件是否领取标记、邮件时间。其中,系统邮件ID是一封系统邮件的唯一标识,系统邮件是否已读标记用于标识所述系统邮件是否已被用户读取,附件是否领取标记用于标识所述系统邮件中的附件是否已被用户领取,邮件时间用于记录所述系统邮件的产生时间。以上各信息项都是可以从一份系统邮件的邮件内容中提取出来的。在一实施方式中,所述装置还包括:消息接收单元40,用于接收来自用户的客户端的系统邮件详情请求消息;所述邮件处理单元30进一步用于,在所述消息接收单元40收到来自用户的客户端的系统邮件详情请求消息时,根据所述请求消息中携带的邮件ID,在所述存储单元中查找与所述邮件ID匹配的系统邮件内容,并将查找所得的系统邮件内容返回给所述用户的客户端。具体的,用户不仅有获取系统邮件列表的需求,用户还有获取相应系统邮件详情的需求,在用户的客户端获得相应用户的系统邮件列表后,用户可以通过客户端向应用服务器发起获得某系统邮件详情的请求消息,该请求消息中可以携带所请求的邮件ID,该邮件ID是客户端从获取的系统邮件列表中获得的;应用服务器的消息接收单元40收到用户的系统邮件详情请求消息时,邮件处理单元30根据所述请求消息中携带的邮件ID,在本地保存的系统邮件内容中查找相匹配的系统邮件内容,从而将查找获得的系统邮件内容返回给所述用户的客户端。在一实施方式中,所述邮件处理单元30进一步用于,检测所述客户端的用户操作,在确定所述标记的内容(如系统邮件是否已读标记、附件是否领取标记)发生改变时,相应修改所述数据库中对应用户的系统邮件索引信息中的标记设置。具体的,邮件处理单元30将相应用户的系统邮件列表返回给相应用户的客户端后,检测客户端的用户操作,当发现用户读取了一封未读的系统邮件索引信息后,相应的将系统邮件索引数据库中对应用户的系统邮件索引信息中的系统邮件是否已读标记设置为已读;和/或,当发现用户领取了一封系统邮件的附件后,相应的将系统邮件索引数据库中对应用户的系统邮件索引信息中的附件是否领取标记设置为已领取。在一实施方式中,所述邮件处理单元30进一步用于通过以下方式对所述数据库中的系统邮件索引信息进行过期处理:周期性或非周期性的在所述数据库中检查所有用户的系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期,并对过期的系统邮件索引信息进行删除;和/或,在获取到向用户提供系统邮件列表的指令,并根据用户标识查找所述数据库获得相应用户的系统邮件索引集合后,检查所述系统邮件索引集合中的系统邮件索引信息,根据所述系统邮件索引信息中的邮件时间判定是否过期,并对过期的系统邮件索引信息进行删除;这种情况下,返回给用户客户端的系统邮 件列表是依据经过所述过期处理后的系统邮件索引集合中的系统邮件索引信息生成的。在一实施方式中,所述装置还包括:消息接收单元50,用于接收来自用户的客户端的针对系统邮件索引信息的操作请求消息;所述邮件处理单元50进一步用于,根据所述操作请求消息中的操作提示信息、以及所述系统邮件索引信息中的信息项,执行对所述系统邮件索引信息的相应操作,并将操作结果返回给所述用户的客户端;其中,所述操作包括:删除系统邮件索引信息、系统邮件索引信息排序、系统邮件索引信息过滤。在一实施方式中,所述每台应用服务器中保存的系统邮件内容来自于特定的系统邮件存储数据库,所述数据库支持系统邮件管理端对其数据库内保存的系统邮件内容进行更新;所述邮件处理单元50进一步用于,周期性或非周期性的访问所述系统邮件存储数据库,并在确定相比所述存储单元10中的系统邮件内容有更新时,相应更新所述存储单元10中的系统邮件内容,以保持所述存储单元10中的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。具体的,本发明实施例中由特定的系统邮件存储数据库来存储应用的所有系统邮件内容,而各应用服务器的存储单元10中则分别保存对所述系统邮件存储数据库中系统邮件内容的拷贝;尤其对于系统邮件,所述系统邮件存储数据库和每个应用服务器的存储单元10中只保存一份完整的系统邮件,不存在重复的系统邮件,这也就大大降低了系统邮件的存储所占空间(现有技术中在每个用户的邮箱中都要存储一份系统邮件,造成重复存储)。总之,本发明实施例二通过引入邮件索引数据库和应用服务器本地缓存所有系统邮件内容的机制,有效避免了用户邮箱存储完整系统邮件内容所带来的冗余存储问题,最大程度降低了用户邮件存储消耗,大幅节省了用户邮件存储空间;同时,通过对系统邮件索引的操作代替现有技术中对系统邮件内容本身的操作,有效降低了系统邮件列表过程中的排序、过滤和删除等操作成本。实施例三本发明实施例三还提供了一种邮件处理系统,如图3所示,该系统包括属于同一应用的至少一台应用服务器及其共享的系统邮件索引数据库,所述系统邮件索引数据库中包括所述应用的每个用户的系统邮件索引集合,每个系统邮件索引集合中包括相应用户的系统邮件索引信息;每台应用服务器中保存所述应用的系统邮件内容;所述应用服务器包括上述实施例二所示的邮件处理装置。在一实施方式中,所述系统还包括:系统邮件存储数据库,用于保存所述应用的系统邮件内容;系统邮件管理端,用于对所述系统邮件存储数据库内保存的系统邮件内容进行管理和更新;所述系统邮件存储数据库还用于接收所述应用服务器的周期性或非周期性访问,以对所述应用服务器内保存的系统邮件内容进行更新,保持所述应用服务器内保存的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。也就是说,本发明实施例中由系统邮件存储数据库来存储应用的所有系统邮件内容,而各应用服务器中则分别保存对所述系统邮件存储数据库中系统邮件内容的拷贝;各应用服务器周期性或非周期性的访问所述系统邮件存储数据库,并在确定相比所述应用服务器中的系统邮件内容有更新时,相应更新所述应用服务器中的系统邮件内容,以保持所述应用服务器中的系统邮件内容与所述系统邮件存储数据库中的系统邮件内容一致。系统邮件管理端执行对系统邮件存储数据库的管理和更新,所述管理和更新包括编辑、添加、修改、删除系统邮件内容等操作。本发明实施例三还提供另一种邮件处理系统,如图4所示,图4所示系统结构与图3所示系统结构的区别在于:图4所示系统没有采用系统邮件存储数据库,而是使系统邮件管理端直接 对应用服务器的系统邮件拷贝进行管理操作;当有新的系统邮件需要下发或更改时,系统邮件管理端直接对每个应用服务器上的系统邮件拷贝内容进行更新即可。那么也就省略了图3所示系统结构中,应用服务器周期性或非周期性的访问系统邮件存储数据库,以保持应用服务器本地的系统邮件拷贝与系统邮件存储数据库中的系统邮件内容一致的处理。下面以应用为网络游戏,且只针对网络游戏的系统邮件进行索引相关的处理为例,进一步详细阐述本发明实施例的方法、装置和系统。实施例四本发明实施例四的一种邮件处理系统如图5所示,该系统中包括:游戏服务器:即网络游戏服务器,通过网络与游戏客户端通信和处理游戏逻辑的服务器;游戏服务器通过访问系统邮件索引数据库,依此获得用户的系统邮件索引列表。系统邮件索引数据库:存储每个用户的系统邮件索引的服务器;每个用户的系统邮件索引信息记录了邮件ID、是否已读、附件是否领取、以及邮件时间等信息;根据此索引方便对用户邮件列表做排序、过滤、标记等操作,也可根据索引获取对应游戏服务器本地的系统邮件拷贝中的邮件详情。使用索引的目在于:一、降低用户邮件系统的服务器成本,对于新增、删除、排序、过滤等需求只需要对用户邮件索引进行操作即可,不需要对邮件本身做操作;对于读取邮件或获取邮件中的附件等,只需修改对应索引中的标志位即可,不需要对邮件本身做操作,同时在过期邮件的处理等场景,不论是定时执行的清理操作,还是用户触发的清理,对索引操作都能使服务器成本大幅降低,如此大大节省了服务器成本,提升服务器性能。二、降低用户邮件系统的存储成本,邮件索引信息相比邮件本身可节约大量的存储空间,每个用户不需要再把邮件全部内容进行存储,而只需要保存邮件ID和部分标记位作为索引信息存储即可,如此不会出现邮件详细内容在每个用户中冗余存储一份的情况,大大节省了系统存储资源。系统邮件存储数据库:系统邮件原始存储的服务器,根据变更需求修改在此处确定后,会定时同步到每一台游戏服务器的本地拷贝,使每台游戏服务器上的系统邮件拷贝与系统邮件存储数据库保持一致。系统邮件管理端:提供给游戏运营工作人员对系统邮件做编辑、添加、修改、删除等操作的工具程序集。其中,系统邮件拷贝:系统邮件内容在游戏服务器本地的拷贝,即从系统邮件存储数据库向游戏服务器本地的拷贝;因为系统邮件内容不大,可直接保存在游戏服务器的内存中作为只读内容而避免使用磁盘,以提高访问效率。在用户的邮件索引信息中,记录系统邮件的状态信息,包括是否已读、是否领取附件、邮件时间等属性。按1亿用户来计算(即100M),100M×每用户100封邮件×每封邮件索引大小13B=130G,也就是说1亿用户,每用户100封系统邮件的存储只需要130G,如此存储成本极低。系统邮件索引数据库中的存储数据结构如下所示(使用xml协议描述):Uin1索引总数索引最近更新时间T1系统邮件索引列表Uin2索引总数索引最近更新时间T2系统邮件索引列表Uin3索引总数索引最近更新时间T3系统邮件索引列表............其中,Uin为用户标识,索引总数为该用户的索引信息总条数,本实施例中该用户有多少条系统邮件就对应有多少条索引信息总条数,系统邮件索引列表为列表形式存储的该用户的系统邮件索引信息集合。其中的系统邮件索引信息的数据结构简述如下:<MailIndexNode><FromUin"type="uint"desc="发送人Uin"/><Flag"type="char"desc="标志位,0x1是否已读,0x2是否系统邮件,0x4是否有附件”/><CreatTime"type="uint"desc="创建时间"/><ExpireTime"type="uint"desc="过期时间"/></MailIndexNode>下面阐述系统的实现过程:1、获取系统邮件列表获取系统邮件列表是用户需求最多的场景,因为用户登录游戏并点击邮箱按钮,首先展示出来的就是用户的系统邮件列表,由于本发明实施例的系统邮件列表不需要展示系统邮件详细内容,使用系统邮件索引能节约大量的服务器开销,提高性能。同时,用户拉取系统邮件列表经常会有排序和过滤的需求,如默认系统邮件列表按由新到旧的时间顺序排列,当然用户也可以按由旧到新的顺序拉取列表的这类排序需求;再如用户希望获取未读系统邮件列表、或已读系统邮件列表、或有道具附件的系统邮件列表等等需要对系统邮件进行过滤后再生成列表的需求。针对用户的排序和过滤需求,在系统邮件索引信息中包含相关参数,如系统邮件索引信息中加入邮件生成时间可满足用户邮件列表的排序需求,如系统邮件索引信息中加入是否已读的标记位可满足用户过滤已读、未读邮件列表的需求,再如系统邮件索引信息中加入是否有可用道具附件的标记位可满足用户过滤有道具附件的系统邮件列表等等需要。2、添加和更新系统邮件游戏运营商会更新系统邮件,包括增加新邮件和更新老邮件,通过管理工具(即系统邮件管理端)修改系统邮件并最终保存在系统邮件存储数据库中,游戏服务器则会定期或不定期的访问系统邮件存储数据库以确定系统邮件是否有更新,如果有更新则拉取最新的系统邮件保存在游戏服务器本地的系统邮件拷贝中。3、用户获取新的系统邮件当系统邮件存储数据库中有新的系统邮件并被游戏服务器更新到本地的系统邮件拷贝中后,当用户登陆游戏访问游戏服务器时,游戏服务器到系统邮件索引数据库拉取用户的系统邮件索引,当与游戏服务器本地的系统邮件拷贝对比后发现游戏服务器本地的系统邮件拷贝中有新的系统邮件时,判断用户信息 是否满足新的系统邮件的下发条件,如果满足则将新的系统邮件信息如邮件ID、邮件生成时间等信息生成新的用户邮件索引信息,然后更新到系统邮件索引数据库中,则用户新系统邮件添加成功;否则,保持用户系统邮件索引不变。4、获取系统邮件详情系统邮件索引信息中记录了邮件ID和邮件生成时间以及部分标记位信息,但用户还需要系统邮件的详细情况时,需要访问系统邮件详情;游戏服务器根据邮件ID访问存储在本地的系统邮件拷贝可获得对应系统邮件的详细内容,包括标题、正文、附件等等详细内容。系统邮件详情结构简述如下所示:常数定义:需要说明的是,结构中定义的常数为经验值所得,不同游戏中使用的值可能不同。系统邮件是系统唯一的,同时也要求系统邮件ID是全系统唯一的。SystemMail是系统邮件详情的描述。结构中的Condition表示系统邮件的下发条件,包含用户uin范围、性别条件、游戏龄等条件,当有新系统邮件时,需判断用户信息是否满足邮件的条件,如满足才可向系统邮件索引数据库中加入用户邮件索引。5、提取附件和邮件已读等标记的设置在用户邮件已读和邮件附件已提取等操作执行后,游戏服务器需要在系统邮件索引数据库中相应的用户邮件索引信息做标记位设置。6、过期邮件的处理对用户的老旧邮件需要做过期处理,有两种方式:一、定期在游戏服务器检查用户邮件索引信息,删除过期的系统邮件索引信息;二、当用户登陆游戏 拉取邮件列表时,检查用户系统邮件索引信息删除过期的系统邮件索引信息。此两种均可,方法一可以定时有效地清理,及时释放过期系统邮件索引信息所占用的用户邮件索引存储,但对游戏服务器有一定的资源消耗;方法二等待用户登陆时才进行清理,能够降低游戏服务器开销。实施例五本发明实施例五的一种邮件处理系统如图6所示,图6所示的系统结构与实施例四所示的系统结构区别在于:没有采用系统邮件存储数据库,而是使系统邮件管理端直接对游戏服务器的系统邮件拷贝进行管理操作;当有新的系统邮件需要下发或更改时,系统邮件管理端直接对每个游戏服务器上的系统邮件拷贝内容进行更新即可。那么也就省略了本发明实施例四中所述的,游戏服务器周期性或非周期性的访问系统邮件存储数据库,以保持游戏服务器本地的系统邮件拷贝与系统邮件存储数据库中的系统邮件内容一致的处理。另外还需要说明的是,本发明实施例的应用服务器可以采用集群部署,用户登录时按Uin取模分配对应的应用服务器,由于应用服务器通过访问邮件索引数据库来获得用户的系统邮件索引列表,因此应用服务器优选的与邮件索引数据库接近部署,以保证网络延迟小。再有,应用服务器本地部署相关进程支持本地系统邮件拷贝的存在及更新。本发明实施例的系统邮件拷贝是作为只读内容保存在应用服务器本地的,因为系统邮件内容不大,优选的可保存在内存中,避免使用磁盘内存,以提高其访问效率。应用服务器中采用专门的进程负责邮件内容的及时更新。对于本发明实施例的邮件索引数据库,因无结构化查询语言(SQL,StructuredQueryLanguage)需求,故可以使用并发读写效率高的NoSQL(指非关系型的数据库)存储方案,对热数据(如访问频率较高的数据)保存在系统内存中,冷数据可定时下沉到磁盘备份,数据冷热分离以提高系统利用率。还 可以对邮件索引数据库内的数据做每日备份,如保留邮件索引数据库在一周内的每日备份,以做备用。对于本发明实施例的系统邮件存储数据库,也因无SQL需求,故也可以使用并发读写效率高的NoSQL存储方案。因应用服务器上保存有系统邮件拷贝,故系统邮件存储数据库无需做短时间容灾,即使系统邮件存储数据库的服务器出现故障,短时间内不会对上述其他服务造成影响,这也体现了本发明实施例架构设计的合理性。对于本发明实施例的系统邮件管理端,可以使用web系统为提供便捷、高效的操作管理界面。综上所述,通过引入邮件索引数据库和应用服务器本地缓存所有系统邮件内容的机制,而且系统邮件详情在系统邮件存储数据库中只保存一份,而区别于现有技术中在每个用户的邮箱中都分别保存一份该用户完整的系统邮件详情(存在大量重复的系统邮件详情),这就有效避免了用户邮箱存储完整系统邮件内容所带来的冗余存储问题,最大程度降低了用户的邮件存储消耗,大幅节省了用户邮件存储空间;同时,通过对系统邮件索引的操作代替现有技术中对系统邮件内容本身的操作,例如:系统邮件列表拉取、标记修改、以及删除排序等操作都只是通过操作系统邮件索引信息即可,而不再涉及如现有技术中对系统邮件详情内容的操作和存储,这样有效降低了系统邮件列表过程中的排序、过滤和删除等操作成本,也提高了操作效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结 合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1