CN117453363A - 一种附件处理方法及装置、电子设备、存储介质 - Google Patents
一种附件处理方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN117453363A CN117453363A CN202311464817.XA CN202311464817A CN117453363A CN 117453363 A CN117453363 A CN 117453363A CN 202311464817 A CN202311464817 A CN 202311464817A CN 117453363 A CN117453363 A CN 117453363A
- Authority
- CN
- China
- Prior art keywords
- thread
- pool
- attachment
- threads
- idle
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 13
- 238000012015 optical character recognition Methods 0.000 description 9
- 238000009827 uniform distribution Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/96—Management of image or video recognition tasks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种附件处理方法及装置、电子设备、存储介质,方法包括:针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;确定附件池中当前未处理附件数以及预设时间内进入附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;基于当前未处理附件数和新增附件数确定需处理的目标附件数;基于总线程数以及未释放线程数确定空闲线程数;在目标附件数不等于空闲线程数时,对线程池中的线程进行调整,并基于调整后的线程进行附件处理。通过本发明实施例,实现了基于附件池和线程池实现线程动态调整,从而提高邮件附件处理效率,避免邮件延时。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种附件处理方法及装置、电子设备、存储介质。
背景技术
在实际应用中,在对邮件中分离出的带有水印的图片进行光学字符识别(OpticalCharacter Recognition,OCR)时,如水印中包含自定义敏感策略内容,不仅会造成邮件的错误处理(因为水印的原因造成邮件被认为含有敏感内容),还会影响识别图片的内容。
从而需要在使用OCR的插件之前对图片进行预处理,而在OCR识别之前进行预处理,当需要处理大量附件时,则会明显增加邮件的延时,影响邮件的处理速度。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种附件处理方法及装置、电子设备、存储介质,包括:
一种附件处理方法,所述方法包括:
针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
确定所述附件池中当前未处理附件数以及预设时间内进入所述附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
基于所述当前未处理附件数和所述新增附件数确定需处理的目标附件数;
基于所述总线程数以及所述未释放线程数确定空闲线程数;
在所述目标附件数不等于所述空闲线程数时,对所述线程池中的线程进行调整,并基于调整后的线程进行附件处理。
可选地,所述在所述目标附件数与所述空闲线程数不匹配时,对所述线程池的线程进行调整,包括:
在所述目标附件数小于所述空闲线程数时,启动针对所述线程池的空闲计时;
在所述线程池的空闲时间大于第一预设时间时,回收所述线程池中的空闲时间大于所述第一预设时间的线程。
可选地,所述在所述目标附件数与所述空闲线程数不匹配时,对所述线程池的线程进行调整,包括:
在所述目标附件数大于所述空闲线程数时,启动针对所述线程池的堆积计时;
在所述堆积时间大于第二预设时间或所述目标附件数大于所述空闲线程数的预设倍数时,在所述线程池中增加新线程。
可选地,所述在所述线程池中增加新线程,包括:
确定当前状态下的目标附件数和空闲线程数;
基于当前状态下的目标附件数和空闲线程数计算待增加线程数;
按照所述待增加线程数在所述线程池中增加新线程。
可选地,还包括:
在堆积计时过程中,若所述附件池中未处理附件数降低,将堆积计时清零后重启。
可选地,所述基于调整后的线程进行附件处理,包括:
在所述附件池中的目标附件被分配至所述线程池中的目标线程时,在目标线程中,在所述目标附件为图像文件时,判断所述图像文件是否包含水印;
在判定所述图像文件包含水印时,对所述图像文件进行去水印处理;
针对去水印处理后的图像文件进行图像识别。
可选地,在针对去水印处理后的图像文件进行图像识别之前,还包括:
获取所述图像文件的字符区域;
确定所述字符区域的外接旋转矩形;
按照所述外接旋转矩形对所述图像文件进行旋转。
一种附件处理装置,所述装置包括:
附件暂存模块,用于针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
数据确定模块,用于确定所述附件池中当前未处理附件数以及预设时间内进入所述附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
目标附件数确定模块,用于基于所述当前未处理附件数和所述新增附件数确定需处理的目标附件数;
空闲线程数确定模块,用于基于所述总线程数以及所述未释放线程数确定空闲线程数;
线程调整模块,用于在所述目标附件数不等于所述空闲线程数时,对所述线程池中的线程进行调整,并基于调整后的线程进行附件处理。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述附件处理的方法。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述附件处理的方法。
本发明实施例具有以下优点:
本发明实施例设置一附件池和线程池,通过对将接收的邮件进行解析,将附件发送至附件池中统一分配线程池中的线程进行处理,进而基于当前未处理附件数和新增附件数确定需处理的目标附件数;基于总线程数以及未释放线程数确定空闲线程数,从而可以根据目标附件数与空闲线程数确定当前线程处理附件的状态,进而动态调整线程池中的线程,从而可以提高邮件附件的处理效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种附件处理方法的步骤流程图;
图2是本发明一实施例提供的另一种附件处理方法的步骤流程图;
图3是本发明一实施例提供的另一种附件处理方法的步骤流程图;
图4a是本发明一实施例提供的一种邮件处理流程示意图;
图4b是本发明一实施例提供的一种线程池管理线程的动态线程管理过程示意图;
图4c是本发明一实施例提供的一种图像附件处理流程示意图;
图5是本发明一实施例提供的附件处理装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明一实施例提供的一种附件处理方法的步骤流程图,具体可以包括如下步骤:
步骤101,针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
在实际应用中,在接收到邮件后,可以对接收的邮件进行解析,得到邮件的附件,进而可以对附件进行处理。
当需要处理的邮件较多时,可以设置一附件池,并将邮件解析过程和附件解析过程设置并线处理,即同时进行邮件解析和附件解析,以便提高邮件处理效率,附件池可以用于存储邮件解析的未处理附件。
步骤102,确定附件池中当前未处理附件数以及预设时间内进入附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
在实际应用中,还可以设置线程池,线程池中可以设置多个工作线程,工作线程可以从附件池中取出附件进行附件处理。在一示例中,每个线程可以携带有两个属性:属性1-空闲时间,属性2-当前状态(work还是sleep)。
在附件池中可以统计当前的未处理附件数,当附件从附件池中取出分配工作线程后,则未处理附件数减一;当有新附件被发送至附件池,则未处理附件数加一。
在实际应用中,还可以根据一段时间内发送至附件池的附件数量计算附件进入附件池的数量,从而可以确定预设时间内进入附件池的新增附件数,即新增附件数=统计时间内进入附件池的附件数/统计时间*预设时间。
线程池可以基于服务器CPU的承载能力设置,即线程池可以设置的最大线程数应小于或等于服务器CPU的承载能力。在线程池中可以预先设置一定数量的工作线程,后续可以根据邮件附件的实际处理过程动态调整线程,以提高邮件处理效率。在线程池中预先设置的工作线程的数量即为用于解析附件的总线程数。
线程池中的工作线程当前在进行附件解析时,则该线程处于工作状态,从而,可以统计线程池中处于工作状态的线程数量,即当前未释放线程数。
其中,空闲线程=总线程数-当前未释放线程数。
步骤103,基于当前未处理附件数和新增附件数确定需处理的目标附件数;
在确定当前未处理附件数和新增附件数后,则可以确定在接下来的预设时间内服务器需要处理的目标附件数。目标附件数可以用于表示总共进入附件池的附件数。即目标附件数=当前未处理附件数+新增附件数。
步骤104,基于总线程数以及未释放线程数确定空闲线程数;
在确定总线程数和未释放线程数后,则可以基于总线程数和未释放线程数确定空闲线程数。空闲线程数可以表示当前从附件池中取出附件进行处理的能力。
步骤105,在目标附件数不等于空闲线程数时,对线程池中的线程进行调整,并基于调整后的线程进行附件处理。
当目标附件数等于空闲线程数时,则表示附件池进入和取出过程平衡,从而不需要对线程池进行调整。
而当目标附件数不等于空闲线程数时,则附件池的进入与取出过程失衡,则可以通过对线程池中线程进行调整,进而基于使附件池调整后的线程进行附件处理,进而使进入与取出过程平衡,以提高邮件处理效率,避免邮件附件处理延时。
在一示例中,线程池中可以设置管理线程,该管理线程用于实现对线程池中的工作线程进行动态调整。线程池中的管理线程可以设置调整周期,如每10秒执行一次上述步骤102至步骤104,判断是否需要进行线程调整。
在本发明一实施例中,步骤105中的基于调整后的线程进行附件处理,具体包括以下子步骤:
子步骤S11,在附件池中的目标附件被分配至线程池中的目标线程时,在目标线程中,在目标附件为图像文件时,判断图像文件是否包含水印;
在实际应用中,附件池中的目标附件可以被取出,并分配至线程池中的目标线程,在目标线程中,则可以对该目标附件进行解析,其解析过程可以包括判断目标附件是否为图像文件,判断图像文件是否包括水印等过程。
具体的,首先判断目标附件是否为图像文件,当目标附件为图像附件的情况下,则可以进一步判断图像文件是否包含水印,当目标附件不为图像附件时,则直接对图像文件进行图像识别。
子步骤S12,在判定图像文件包含水印时,对图像文件进行去水印处理;
当图像文件包含水印时,为避免水印干扰,则可以对图像文件进行去水印处理。
子步骤S13,针对去水印处理后的图像文件进行图像识别。
在本发明一实施例中,在子步骤S13之前还包括:获取图像文件的字符区域;确定字符区域的外接旋转矩形;按照外接旋转矩形对图像文件进行旋转。
在本发明实施例中,对经过预处理的图像文件中的字符进行矫正,可以提高图像识别准确率。
在一示例中,图像识别过程具体可以包括文本检测、检测包围框校正和文本识别等过程,图像识别过程具体可以应用OCR识别技术。
在本发明实施例中设置一附件池和线程池,通过对将接收的邮件进行解析,将附件发送至附件池中统一分配线程池中的线程进行处理,进而基于当前未处理附件数和新增附件数确定需处理的目标附件数;基于总线程数以及未释放线程数确定空闲线程数,从而可以根据目标附件数与空闲线程数确定当前线程处理附件的状态,进而动态调整线程池中的线程,从而可以提高邮件附件的处理效率。
参照图2,示出了本发明一实施例提供的另一种附件处理方法的步骤流程图,具体可以包括如下步骤:
步骤201,针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
步骤202,确定附件池中当前未处理附件数以及预设时间内进入附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
步骤203,基于当前未处理附件数和新增附件数确定需处理的目标附件数;
步骤204,基于总线程数以及未释放线程数确定空闲线程数;
步骤205,在目标附件数小于空闲线程数时,启动针对线程池的空闲计时;
在目标附件数小于空闲线程数时,则表示当前线程池处理能力高,存在空闲线程,此时可以启动线程池的空闲计时。
步骤206,在线程池的空闲时间大于第一预设时间时,回收线程池中的空闲时间大于第一预设时间的线程。
当线程池的空闲时间大于第一预设时间,即线程池持续空闲,从而,可以针对线程池中的部分线程进行回收,避免资源浪费。具体的,可以获取线程池中每个线程的线程属性,确定空闲状态的线程,并判断空闲状态的线程空闲时间是否大于第一预设时间,当空闲状态的线程的空闲时间大于第一预设时间时,则可以回收该空闲线程。
步骤207,基于调整后的线程进行附件处理。
在本发明实施例中,设置一附件池和线程池,通过对将接收的邮件进行解析,将附件发送至附件池中统一分配线程池中的线程进行处理,进而基于当前未处理附件数和新增附件数确定需处理的目标附件数;基于总线程数以及未释放线程数确定空闲线程数,从而可以在目标附件数小于空闲线程数,启动针对线程池的空闲计时;在线程池的空闲时间大于第一预设时间时,回收线程池中的空闲时间大于第一预设时间的线程,实现动态调整线程池中的线程,从而可以提高邮件附件的处理效率。
参照图3,示出了本发明一实施例提供的另一种附件处理方法的步骤流程图,具体可以包括如下步骤:
步骤301,针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
步骤302,确定附件池中当前未处理附件数以及预设时间内进入附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
步骤303,基于当前未处理附件数和新增附件数确定需处理的目标附件数;
步骤304,基于总线程数以及未释放线程数确定空闲线程数;
步骤305,在目标附件数大于空闲线程数时,启动针对线程池的堆积计时;
在本发明一实施例中,在堆积计时过程中,若附件池中未处理附件数降低,将堆积计时清零后重启。
在实际应用中,堆积计时过程中,若附件池中未处理附件数降低,则表示线程可以处理当前堆积附件,从而堆积计时清零,如当前状态依然满足目标附件数大于空闲线程数,则重启堆积计时,如当前目标附件数等于空闲线程数,则不对线程进行调整,如目标附件数小于空闲线程数,则启动针对线程池的空闲计时;在线程池的空闲时间大于第一预设时间时,回收线程池中的空闲时间大于第一预设时间的线程。
步骤306,在堆积时间大于第二预设时间或目标附件数大于空闲线程数的预设倍数时,在线程池中增加新线程。
当堆积时间大于第二预设时间或目标附件数大于空闲线程数的预设倍数,则可以触发线程池增加线程,以加快处理邮件附件处理流程。
其中,增加的线程数量至少满足增加线程后,线程池的总线程数不超过最大线程池容量,同时还需要兼顾避免增加线程后线程闲置。
在本发明一实施例中,在线程池中增加新线程,包括:确定当前状态下的目标附件数和空闲线程数;基于当前状态下的目标附件数和空闲线程数计算待增加线程数;按照待增加线程数在线程池中增加新线程。
在实际应用中,可以结合当前状态下实时的目标附件数和空闲线程数确定待增加线程数,进而按照该线程数增加线程。
在一示例中,当目标附件数大于空闲线程数的预设倍数时,可以计算目标附件数与空闲线程数的预设倍数之间的差值,依照该差值确定新增线程数。
例如:新增线程数≈目标附件数-空闲线程数*预设倍数。
其中,预设倍数可以为大于0的任意数值,如1、1.5、2等。
其中,新增线程数为大于0的正整数,具体可以为针对(目标附件数-空闲线程数*预设倍数)进行取整后的值。
在另一示例中,当堆积时间大于第二预设时间时,可以计算目标附件数与空闲线程数的差值,依照该差值确定新增线程数。
例如,新增线程数=目标附件数-空闲线程数,其中,新增线程数为大于0的正整数。
步骤307,基于调整后的线程进行附件处理。
在本发明实施例中,设置一附件池和线程池,通过对将接收的邮件进行解析,将附件发送至附件池中统一分配线程池中的线程进行处理,进而基于当前未处理附件数和新增附件数确定需处理的目标附件数;基于总线程数以及未释放线程数确定空闲线程数,从而可以在目标附件数大于空闲线程数时,启动针对线程池的堆积计时;在堆积时间大于第二预设时间或目标附件数大于空闲线程数的预设倍数时,在线程池中增加新线程,实现动态调整线程池中的线程,从而可以提高邮件附件的处理效率。
以下结合图4a、图4b以及图4c对本发明上述实施例进行示例性说明:
如图4a所示,为本发明实施例中一种邮件处理流程示意图,其展示的邮件处理流程为:针对接收的多个邮件进行解析,将解析得到的附件发送至附件池中,附件池中附件被分配至多个线程上进行解析附件,当附件存在图片时,则可以调用OCR识别插件,发送扫描请求至OCR识别插件进行图像文件识别。当附件中不存在图片时,则直接输出扫描结果。
在进行图像识别后,可以接收扫描结果,并将扫描结果存储起来集中处理,进而处理扫描结果,并根据扫描发送控制邮件的消息。
如图4b所示,为本发明实施例中一种线程池管理线程的动态线程管理过程,其展示的动态线程流程具体为:
步骤S21,确定与线程动态调整关联的多个参数:附件池中当前未处理附件数为p,每秒新增附件数为m,线程池中线程数为n,当前工作中的线程数为q;
步骤S22,判断m+p与n-q的大小关系;当(m+p)小于(n-q)时,执行S23,当(m+p)大于(n-q)时,执行S24,
步骤S23,线程冗余,空闲计时开始,在判断空闲计时大于30分钟时,回收线程(线程空闲时间大于30分钟)。
步骤S24,附件堆积,堆积计时开始,判断堆积计时是否10s或m+p是否大于2(n-q);
标记增加线程数:堆积计时大于10S时,增加线程数为m+p-(n-q);当m+p大于2(n-q)时,增加线程数为:m+p-2(n-q)。
判断设备负载是否正常,并在设备负载正常的情况下按照标记的增加线程书增加线程池线程;在设备负载不正常的情况下,继续判断m+p与n-q的大小关系。
如图4c所示,为本发明实施例中一种图像附件处理流程示意图,其具体流程为:获取图像文件,判断图像是否包含水印,在不存在水印情况下,直接进行矫正字符,当存在水印的情况下去除图像水印,再进行矫正字符,在字符矫正后,识别图像内容,进而组装文本内容。
其中,字符矫正过程为:获取图像文件的字符区域;确定字符区域的外接旋转矩形;按照外接旋转矩形对图像文件进行旋转,通过对经过预处理的图像文件中的字符进行矫正,提高图像识别准确率。
其中,识别图像内容可以包括文本检测、检测包围框校正和文本识别过程。
需要说明的是,对于方法实施例,为了简单描述,故将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明一实施例提供的一种附件处理装置的结构示意图,具体可以包括如下模块:
附件暂存模块501,用于针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
数据确定模块502,用于确定所述附件池中当前未处理附件数以及预设时间内进入所述附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
目标附件数确定模块503,用于基于所述当前未处理附件数和所述新增附件数确定需处理的目标附件数;
空闲线程数确定模块504,用于基于所述总线程数以及所述未释放线程数确定空闲线程数;
线程调整模块505,用于在所述目标附件数不等于所述空闲线程数时,对所述线程池中的线程进行调整,并基于调整后的线程进行附件处理。
在本发明一实施例中,所述线程调整模块505可以包括:
空闲计时启动子模块,用于在所述目标附件数小于所述空闲线程数时,启动针对所述线程池的空闲计时;
线程回收子模块,用于在所述线程池的空闲时间大于第一预设时间时,回收所述线程池中的空闲时间大于所述第一预设时间的线程。
在本发明一实施例中,所述线程调整模块505可以包括:
堆积计时启动子模块,用于在所述目标附件数大于所述空闲线程数时,启动针对所述线程池的堆积计时;
线程增加子模块,用于在所述堆积时间大于第二预设时间或所述目标附件数大于所述空闲线程数的预设倍数时,在所述线程池中增加新线程。
在本发明一实施例中,所述线程增加子模块可以包括:
当前状态数据确定单元,用于确定当前状态下的目标附件数和空闲线程数;
新增线程数确定单元,用于基于当前状态下的目标附件数和空闲线程数计算待增加线程数;
线程增加单元,用于按照所述待增加线程数在所述线程池中增加新线程。
在本发明一实施例中,所述线程调整模块505还包括:
堆积计时清零子模块,用于在堆积计时过程中,若所述附件池中未处理附件数降低,将堆积计时清零后重启。
在本发明一实施例中,线程调整模块505包括:
图像水印判断子模块,用于在所述附件池中的目标附件被分配至所述线程池中的目标线程时,在目标线程中,在所述目标附件为图像文件时,判断所述图像文件是否包含水印;
去水印子模块,用于在判定所述图像文件包含水印时,对所述图像文件进行去水印处理;
图像识别子模块,用于针对去水印处理后的图像文件进行图像识别。
在本发明一实施例中,线程调整模块505可以包括:
字符区域获取子模块,用于获取所述图像文件的字符区域;
外接旋转矩阵确定子模块,用于确定所述字符区域的外接旋转矩形;
图像文件旋转子模块,用于按照所述外接旋转矩形对所述图像文件进行旋转。
在本发明实施例中设置一附件池和线程池,通过对将接收的邮件进行解析,将附件发送至附件池中统一分配线程池中的线程进行处理,进而基于所述当前未处理附件数和所述新增附件数确定需处理的目标附件数;基于所述总线程数以及所述未释放线程数确定空闲线程数,从而可以根据目标附件数与空闲线程数确定当前线程处理附件的状态,进而动态调整线程池中的线程,从而可以提高邮件附件的处理效率。
本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上附件处理方法。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上附件处理方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种附件处理方法及装置、电子设备、存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种附件处理方法,其特征在于,所述方法包括:
针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
确定所述附件池中当前未处理附件数以及预设时间内进入所述附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
基于所述当前未处理附件数和所述新增附件数确定需处理的目标附件数;
基于所述总线程数以及所述未释放线程数确定空闲线程数;
在所述目标附件数不等于所述空闲线程数时,对所述线程池中的线程进行调整,并基于调整后的线程进行附件处理。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标附件数与所述空闲线程数不匹配时,对所述线程池的线程进行调整,包括:
在所述目标附件数小于所述空闲线程数时,启动针对所述线程池的空闲计时;
在所述线程池的空闲时间大于第一预设时间时,回收所述线程池中的空闲时间大于所述第一预设时间的线程。
3.根据权利要求1所述的方法,其特征在于,所述在所述目标附件数与所述空闲线程数不匹配时,对所述线程池的线程进行调整,包括:
在所述目标附件数大于所述空闲线程数时,启动针对所述线程池的堆积计时;
在所述堆积时间大于第二预设时间或所述目标附件数大于所述空闲线程数的预设倍数时,在所述线程池中增加新线程。
4.根据权利要求3所述的方法,其特征在于,所述在所述线程池中增加新线程,包括:
确定当前状态下的目标附件数和空闲线程数;
基于当前状态下的目标附件数和空闲线程数计算待增加线程数;
按照所述待增加线程数在所述线程池中增加新线程。
5.根据权利要求3所述的方法,其特征在于,还包括:
在堆积计时过程中,若所述附件池中未处理附件数降低,将堆积计时清零后重启。
6.根据权利要求1所述的方法,其特征在于,所述基于调整后的线程进行附件处理,包括:
在所述附件池中的目标附件被分配至所述线程池中的目标线程时,在目标线程中,在所述目标附件为图像文件时,判断所述图像文件是否包含水印;
在判定所述图像文件包含水印时,对所述图像文件进行去水印处理;
针对去水印处理后的图像文件进行图像识别。
7.根据权利要求6所述的方法,其特征在于,在针对去水印处理后的图像文件进行图像识别之前,还包括:
获取所述图像文件的字符区域;
确定所述字符区域的外接旋转矩形;
按照所述外接旋转矩形对所述图像文件进行旋转。
8.一种附件处理装置,其特征在于,所述装置包括:
附件暂存模块,用于针对接收的邮件进行解析,并将解析得到的附件发送至用于暂存未处理附件的附件池中;
数据确定模块,用于确定所述附件池中当前未处理附件数以及预设时间内进入所述附件池的新增附件数,并在预设线程池中确定用于解析附件的总线程数以及当前未释放线程数;
目标附件数确定模块,用于基于所述当前未处理附件数和所述新增附件数确定需处理的目标附件数;
空闲线程数确定模块,用于基于所述总线程数以及所述未释放线程数确定空闲线程数;
线程调整模块,用于在所述目标附件数不等于所述空闲线程数时,对所述线程池中的线程进行调整,并基于调整后的线程进行附件处理。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述附件处理的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述附件处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311464817.XA CN117453363B (zh) | 2023-11-06 | 一种附件处理方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311464817.XA CN117453363B (zh) | 2023-11-06 | 一种附件处理方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117453363A true CN117453363A (zh) | 2024-01-26 |
CN117453363B CN117453363B (zh) | 2024-07-12 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080147746A1 (en) * | 2006-12-19 | 2008-06-19 | International Business Machines Corporation | System and method for managing files to be attached to or detached from an electronic mail |
US20080295107A1 (en) * | 2007-05-23 | 2008-11-27 | Fabrizio Muscarella | Adaptive Thread Pool |
CN102043675A (zh) * | 2010-12-06 | 2011-05-04 | 北京华证普惠信息股份有限公司 | 一种基于任务处理请求任务量大小的线程池管理方法 |
CN107220033A (zh) * | 2017-07-05 | 2017-09-29 | 百度在线网络技术(北京)有限公司 | 用于控制线程池中线程数量的方法和装置 |
CN107832126A (zh) * | 2017-10-20 | 2018-03-23 | 平安科技(深圳)有限公司 | 一种线程的调整方法及其终端 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN110018892A (zh) * | 2019-03-12 | 2019-07-16 | 平安普惠企业管理有限公司 | 基于线程资源的任务处理方法及相关装置 |
CN113157410A (zh) * | 2021-03-30 | 2021-07-23 | 北京大米科技有限公司 | 线程池调节方法、装置、存储介质及电子设备 |
US20230161628A1 (en) * | 2021-11-22 | 2023-05-25 | Sap Se | Intelligent processing of tasks in an elastic cloud application |
CN116661960A (zh) * | 2023-04-28 | 2023-08-29 | 中国农业银行股份有限公司 | 一种批量任务处理方法、装置、设备以及存储介质 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080147746A1 (en) * | 2006-12-19 | 2008-06-19 | International Business Machines Corporation | System and method for managing files to be attached to or detached from an electronic mail |
US20080295107A1 (en) * | 2007-05-23 | 2008-11-27 | Fabrizio Muscarella | Adaptive Thread Pool |
CN102043675A (zh) * | 2010-12-06 | 2011-05-04 | 北京华证普惠信息股份有限公司 | 一种基于任务处理请求任务量大小的线程池管理方法 |
CN107220033A (zh) * | 2017-07-05 | 2017-09-29 | 百度在线网络技术(北京)有限公司 | 用于控制线程池中线程数量的方法和装置 |
CN107832126A (zh) * | 2017-10-20 | 2018-03-23 | 平安科技(深圳)有限公司 | 一种线程的调整方法及其终端 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN110018892A (zh) * | 2019-03-12 | 2019-07-16 | 平安普惠企业管理有限公司 | 基于线程资源的任务处理方法及相关装置 |
CN113157410A (zh) * | 2021-03-30 | 2021-07-23 | 北京大米科技有限公司 | 线程池调节方法、装置、存储介质及电子设备 |
US20230161628A1 (en) * | 2021-11-22 | 2023-05-25 | Sap Se | Intelligent processing of tasks in an elastic cloud application |
CN116661960A (zh) * | 2023-04-28 | 2023-08-29 | 中国农业银行股份有限公司 | 一种批量任务处理方法、装置、设备以及存储介质 |
Non-Patent Citations (3)
Title |
---|
NING-JIANG CHEN 等: "A Dynamic Adjustment Mechanism with Heuristic for Thread Pool in Middleware", 《2010 THIRD INTERNATIONAL JOINT CONFERENCE ON COMPUTATIONAL SCIENCE AND OPTIMIZATION》, 29 July 2010 (2010-07-29), pages 369 - 372 * |
周晓炜 等: "ROSA:资源敏感的高性能Web容器体系结构", 《计算机科学与探索》, vol. 6, no. 01, 15 January 2012 (2012-01-15), pages 32 - 45 * |
夏利 等: "基于对象池模式的自适应线程池技术", 《东北大学学报》, vol. 27, no. 10, 30 October 2006 (2006-10-30), pages 1091 - 1094 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107103009B (zh) | 一种数据处理方法及装置 | |
CA2533737A1 (en) | Fast application notification in a clustered computing system | |
CN113672396B (zh) | 一种流式计算作业处理方法以及装置 | |
CN110471749B (zh) | 任务处理方法、装置、计算机可读存储介质和计算机设备 | |
CN1471376A (zh) | 用于确定周期任务的最好情况响应时间的方法和系统 | |
CN110795284B (zh) | 一种数据恢复方法、装置、设备及可读存储介质 | |
CN112363834A (zh) | 任务处理方法、装置、终端和存储介质 | |
CN117453363B (zh) | 一种附件处理方法及装置、电子设备、存储介质 | |
CN112114903A (zh) | 文件加载方法及装置 | |
CN117453363A (zh) | 一种附件处理方法及装置、电子设备、存储介质 | |
CN111694652A (zh) | 任务动态调度方法、装置、计算机设备及存储介质 | |
CN110597688A (zh) | 监控信息采集方法及系统 | |
CN112416534A (zh) | 一种基于Agent的任务管理方法及装置 | |
CN116627615A (zh) | 一种任务处理方法、装置、电子设备和存储介质 | |
CN111210286A (zh) | 一种基于税控服务器的发票高效开具方法及系统 | |
CN115904650A (zh) | Linux系统下的定时任务监管方法及装置 | |
CN113568742B (zh) | 一种文件压缩方法、装置、系统、电子设备及存储介质 | |
CN112860391B (zh) | 一种动态集群渲染资源管理系统及方法 | |
CN111045832B (zh) | 一种软件死循环或阻塞监控的方法及系统 | |
CN114565061A (zh) | 电动机启动状态判断方法、装置、存储介质及电子设备 | |
CN112052094A (zh) | 一种基于多线程的任务执行方法 | |
CN114035928A (zh) | 分布式任务分配处理方法 | |
CN116342087A (zh) | 一种事件处理的方法、装置及电子设备 | |
CN109582530B (zh) | 系统控制方法、装置、计算机及计算机可读存储介质 | |
CN107291530B (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 | ||
GR01 | Patent grant |