[发明专利]一种大附件邮件的多线程并发处理方法及装置有效
申请号: | 202011299553.3 | 申请日: | 2020-11-19 |
公开(公告)号: | CN112612619B | 公开(公告)日: | 2023-10-20 |
发明(设计)人: | 卞海文;赵晶;王志海;喻波;韩振国 | 申请(专利权)人: | 北京明朝万达科技股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F11/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100142 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 附件 邮件 多线程 并发 处理 方法 装置 | ||
1.一种大附件邮件的多线程并发处理方法,其特征在于,包括以下步骤:
步骤S1001:Postfix邮件服务器接收到邮件后,将邮件信息传递到stmp-filter进程;
步骤S1002:所述stmp-filter进程将邮件信息的头信息传输给Linux的消息队列,将邮件及其包含的附件文件转为base64编码文件并存放到虚拟磁盘上;
步骤S1003:File-Process进程的线程池执行ReceiverFromSmtp线程,多个ReceiverFromSmtp线程依次从所述Linux的消息队列中获取邮件信息的头信息,并将所述邮件信息的头信息存储到Redis和第一阻塞队列中,为防止多个ReceiverFromSmtp线程对Redis写入信息时有冲突,需要对Redis进行加锁操作;
步骤S1004:File-Process进程设置服务器资源的临界值;
步骤S1005:File-Process监控内存资源和虚拟磁盘占用情况;
步骤S1006:判断分配的内存资源是否达到临界值;若是,进入步骤S1007;若否,进入步骤S1008;
步骤S1007:ReceiverFromSmtp线程池中的线程暂停获取邮件信息;File-Process进程继续监听,监听一预设时长后,进入步骤S105;
步骤S1008:MsgProcess线程池中的多个MsgProcess线程从所述Redis和第一阻塞队列中获取所述邮件信息的头信息及临时文件信息,为防止多个MsgProcess线程对Redis操作有冲突,需要对Redis进行加锁操作,对所述邮件信息的头信息及临时文件信息进行处理,将处理后的邮件信息的头信息及临时文件信息存储到第二阻塞队列中;
步骤S1009:ParserEml线程池中的ParserEml线程从所述第二阻塞队列LinkedBlockingQueue中获取包括邮件主题、收件人、发件人和邮件头信息的邮件信息,TikaParser线程池中的TikaParser线程从所述第一阻塞队列LinkedBlockingQueue中获取邮件附件的相关信息,并由ParserEml线程和TikaParser线程分别进行解析,解析完成后,将解析得到的信息发送给策略匹配进程;
步骤S1010:按预设策略处理解析过程中产生的临时文件。
2.如权利要求1所述的大附件邮件的多线程并发处理方法,其特征在于,所述File-Process进程在启动时即开启监控分配的内存资源占用情况的功能。
3.如权利要求1所述的大附件邮件的多线程并发处理方法,其特征在于,所述步骤S1010:按预设策略处理解析过程中产生的临时文件,包括:对于符合规则可以立即删除的临时文件,立即删除该临时文件;对于不能立即删除的临时文件,设置定时器,到达时间时删除该临时文件。
4.如权利要求1所述的大附件邮件的多线程并发处理方法,其特征在于,通过File-Process对内存的监控,控制邮件的解析速率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明朝万达科技股份有限公司,未经北京明朝万达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011299553.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:刀具回馈控制装置及方法
- 下一篇:一种智能宣传系统及其控制方法