CN116594756B - 任务处理方法、装置、终端设备以及存储介质 - Google Patents
任务处理方法、装置、终端设备以及存储介质 Download PDFInfo
- Publication number
- CN116594756B CN116594756B CN202310873663.3A CN202310873663A CN116594756B CN 116594756 B CN116594756 B CN 116594756B CN 202310873663 A CN202310873663 A CN 202310873663A CN 116594756 B CN116594756 B CN 116594756B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- warehouse
- sub
- date
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 71
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000000007 visual effect Effects 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种任务处理方法、装置、终端设备以及存储介质,其任务处理方法包括:在主线程启动时,生成任务池,主线程包括若干子线程;分别通过若干子线程驱动对应的浏览器,并从任务池中获取对应的任务;锁定任务并运行,得到浏览器的目标数据。基于本申请方案,通过在主线程中生成任务池并启动多个子线程,每个子线程负责驱动一个浏览器,并基于锁定机制,使得每个任务只被一个子线程获取和处理,可以实现任务的并行处理,并避免多个子线程同时处理同一个任务,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
Description
技术领域
本申请涉及互联网数据处理技术领域,尤其涉及一种任务处理方法、装置、终端设备以及存储介质。
背景技术
爬虫技术可以用于从多个数据源收集数据,并将其聚合和整理成有用的格式。这些数据可以用于生成报告、图表和可视化展示,帮助决策者更好地理解和分析数据,从而做出更明智的决策。
目前的爬虫技术主要依赖于分析目标站点的接口,并使用异步多进程交替方式进行网络请求,针对多个浏览器的各自环境参数,需要先提取再请求,使得任务处理的效率低、稳定性差。
发明内容
本申请的主要目的在于提供一种任务处理方法、装置、终端设备以及存储介质,旨在解决任务处理的效率低、稳定性差的技术问题。
为实现上述目的,本申请提供一种任务处理方法,所述任务处理方法包括:
在主线程启动时,生成任务池,所述主线程包括若干子线程;
分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
锁定所述任务并运行,得到所述浏览器的目标数据。
可选地,所述锁定所述任务并运行,得到所述浏览器的目标数据的步骤包括:
锁定所述任务,生成对应的任务标记;
基于所述任务标记,运行所述任务;
根据预设条件,检测所述任务是否完成,得到所述目标数据。
可选地,所述基于所述任务标记,运行所述任务的步骤包括:
获取所述浏览器的接口参数;
根据所述接口参数,检测所述任务是否中断;
若检测到所述任务中断,则生成扫码请求指令并发送;
接收扫码完成指令,根据所述扫码完成指令,执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
可选地,所述接收扫码完成指令的步骤包括:
基于预设定时机制,接收所述扫码完成指令。
可选地,所述根据预设条件,检测所述任务是否完成,得到所述目标数据的步骤包括:
获取所述任务的历史日期的入库数据量及当前日期的入库数据量;
判断所述历史日期的入库数据量与所述当前日期的入库数据量是否一致;
若所述历史日期的入库数据量与所述当前日期的入库数据量一致,则得到所述目标数据;
若所述历史日期的入库数据量与所述当前日期的入库数据量不一致,则执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
可选地,所述根据预设条件,检测所述任务是否完成,得到所述目标数据的步骤之后,还包括:
获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致;
若所述当前日期的入库数据与所述历史日期的入库数据不一致,则基于所述当前日期的入库数据,确定遗漏任务;
针对所述遗漏任务,更新所述任务池,并执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
可选地,所述获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致的步骤之后,还包括:
若所述当前日期的入库数据与所述历史日期的入库数据一致,则基于所述当前日期的入库数据,生成日志报告并推送。
本申请实施例还提出一种任务处理装置,所述任务处理装置包括:
启动模块,用于在主线程启动时,生成任务池,所述主线程包括若干子线程;
驱动模块,用于分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
运行模块,用于锁定所述任务并运行,得到所述浏览器的目标数据。
本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如上所述的任务处理方法的步骤。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如上所述的任务处理方法的步骤。
本申请实施例提出的任务处理方法、装置、终端设备以及存储介质,通过在主线程启动时,生成任务池,所述主线程包括若干子线程;分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;锁定所述任务并运行,得到所述浏览器的目标数据。基于本申请方案,通过在主线程中生成任务池并启动多个子线程,每个子线程负责驱动一个浏览器,并基于锁定机制,使得每个任务只被一个子线程获取和处理,可以实现任务的并行处理,并避免多个子线程同时处理同一个任务,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
附图说明
图1为本申请任务处理装置所属终端设备的功能模块示意图;
图2为本申请任务处理方法第一示例性实施例的流程示意图;
图3为本申请任务处理方法第二示例性实施例的流程示意图;
图4为本申请任务处理方法的整体流程示意图;
图5为本申请任务处理方法第三示例性实施例的流程示意图;
图6为本申请任务处理方法第四示例性实施例的流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:在主线程启动时,生成任务池,所述主线程包括若干子线程;分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;锁定所述任务并运行,得到所述浏览器的目标数据。基于本申请方案,通过在主线程中生成任务池并启动多个子线程,每个子线程负责驱动一个浏览器,并基于锁定机制,使得每个任务只被一个子线程获取和处理,可以实现任务的并行处理,并避免多个子线程同时处理同一个任务,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
本申请实施例考虑到,针对任务处理的效率低、稳定性差这一问题,目前的爬虫技术主要依赖于分析目标站点的接口,并使用异步多进程交替方式进行网络请求,针对多个浏览器的各自环境参数,需要先提取再请求,使得任务处理的效率低、稳定性差。
因此,本申请实施例方案,从提升任务处理的效率及稳定性的实际问题出发,结合主线程对任务处理的并行能力及锁定机制对任务处理的可靠性,设计一种基于多线程驱动浏览器的任务处理方法,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
具体地,参照图1,图1为本申请任务处理装置所属终端设备的功能模块示意图。该任务处理装置可以为独立于终端设备的、能够进行任务处理的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该任务处理装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作系统以及任务处理程序,任务处理装置可以将在主线程启动时,生成的任务池,主线程包括的若干子线程;分别通过若干子线程驱动的对应的浏览器,并从任务池中获取的对应的任务;锁定的任务并运行,得到的浏览器的目标数据等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的任务处理程序被处理器执行时实现以下步骤:
在主线程启动时,生成任务池,所述主线程包括若干子线程;
分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
锁定所述任务并运行,得到所述浏览器的目标数据。
进一步地,存储器130中的任务处理程序被处理器执行时还实现以下步骤:
锁定所述任务,生成对应的任务标记;
基于所述任务标记,运行所述任务;
根据预设条件,检测所述任务是否完成,得到所述目标数据。
进一步地,存储器130中的任务处理程序被处理器执行时还实现以下步骤:
获取所述浏览器的接口参数;
根据所述接口参数,检测所述任务是否中断;
若检测到所述任务中断,则生成扫码请求指令并发送;
接收扫码完成指令,根据所述扫码完成指令,执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
进一步地,存储器130中的任务处理程序被处理器执行时还实现以下步骤:
基于预设定时机制,接收所述扫码完成指令。
进一步地,存储器130中的任务处理程序被处理器执行时还实现以下步骤:
获取所述任务的历史日期的入库数据量及当前日期的入库数据量;
判断所述历史日期的入库数据量与所述当前日期的入库数据量是否一致;
若所述历史日期的入库数据量与所述当前日期的入库数据量一致,则得到所述目标数据;
若所述历史日期的入库数据量与所述当前日期的入库数据量不一致,则执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
进一步地,存储器130中的任务处理程序被处理器执行时还实现以下步骤:
获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致;
若所述当前日期的入库数据与所述历史日期的入库数据不一致,则基于所述当前日期的入库数据,确定遗漏任务;
针对所述遗漏任务,更新所述任务池,并执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
进一步地,存储器130中的任务处理程序被处理器执行时还实现以下步骤:
若所述当前日期的入库数据与所述历史日期的入库数据一致,则基于所述当前日期的入库数据,生成日志报告并推送。
本实施例通过上述方案,具体通过在主线程启动时,生成任务池,所述主线程包括若干子线程;分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;锁定所述任务并运行,得到所述浏览器的目标数据。基于本申请方案,通过在主线程中生成任务池并启动多个子线程,每个子线程负责驱动一个浏览器,并基于锁定机制,使得每个任务只被一个子线程获取和处理,可以实现任务的并行处理,并避免多个子线程同时处理同一个任务,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。
参照图2,图2为本申请任务处理方法第一示例性实施例的流程示意图。所述任务处理方法包括:
步骤S210,在主线程启动时,生成任务池,所述主线程包括若干子线程;
本实施例方法的执行主体可以是一种任务处理装置,也可以是一种任务处理终端设备或服务器,本实施例以任务处理装置进行举例,该任务处理装置可以集成在具有数据处理功能的智能手机、平板电脑等终端设备上。
本实施例从提升任务处理的效率及稳定性的实际问题出发,结合主线程对任务处理的并行能力及锁定机制对任务处理的可靠性,设计一种基于多线程驱动浏览器的任务处理方法,主要实现对任务处理尤其是多个任务处理,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
具体地,主线程在启动时会创建一个任务池,任务池包括若干个任务,可以是一个队列、列表或其他数据结构,用于存储待执行任务的容器,可以是保存待获取的目标网址、数据获取规则、获取参数等信息。
示例性地,在主线程中使用Python语言启动,首先会初始化一个任务池,并将任务池的记录保存到MySQL数据库中。
步骤S220,分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
具体地,主线程在启动时,还会创建若干个子线程,每个子线程负责驱动一个浏览器实例,并负责处理一个任务,根据任务控制对应的浏览器执行获取操作。子线程通过访问任务池,从中获取待执行的任务,可以根据任务的类型和要求进行相应的处理。任务可以是需要爬取的网址、需要填充的表单信息、需要模拟的用户操作等。
示例性地,多个子线程会被启动,每个子线程负责控制一个浏览器。本申请实施例采用selenium作为Web应用程序测试工具,通过控制浏览器,子线程可以模拟用户操作。
步骤S230,锁定所述任务并运行,得到所述浏览器的目标数据。
具体地,在子线程获取任务后,需要锁定该任务,以避免其他线程同时处理同一个任务。通过锁定机制,可以拒绝当前任务给其他线程获取。子线程会驱动对应的浏览器执行相应的操作,如访问网页、填充表单、点击按钮等。通过模拟用户的操作,子线程能够得到浏览器中所需的目标数据。其中,目标数据可以是律师事务所和法律研究机构所收集和分析的法律文件、法规、判例等信息,以支持法律研究、案件准备和法律监管工作。
示例性地,子线程会从任务池中获取任务,并在数据库中标记该任务为进行中,以避免其他线程同时处理同一个任务。子线程会访问对应的任务页面,并获取浏览器的环境参数。通过模拟请求,子线程会获取到目标数据,并对数据进行整理和处理,最后将数据入库。
本实施例通过上述方案,具体通过在主线程启动时,生成任务池,所述主线程包括若干子线程;分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;锁定所述任务并运行,得到所述浏览器的目标数据。基于本申请方案,通过在主线程中生成任务池并启动多个子线程,每个子线程负责驱动一个浏览器,并基于锁定机制,使得每个任务只被一个子线程获取和处理,可以实现任务的并行处理,并避免多个子线程同时处理同一个任务,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
参照图3,图3为本申请任务处理方法第二示例性实施例的流程示意图。基于上述图2所示的实施例,步骤S230,锁定所述任务并运行,得到所述浏览器的目标数据,包括:
步骤S310,锁定所述任务,生成对应的任务标记;
具体地,在子线程获取任务后,为了避免其他子线程同时处理同一个任务,需要进行任务锁定,任务标记用于表示当前任务正在执行。
示例性地,可以在数据库中给任务添加一个标记字段,将其标记为“进行中”状态,可以使得其他线程在获取任务时会检查是否存在任务标记,如果任务已经被标记为进行中,则会跳过该任务。
步骤S320,基于所述任务标记,运行所述任务;
具体地,在任务被锁定时,子线程可以开始运行任务。子线程根据任务的类型和要求,执行具体的运行操作,可以提升任务的独立性和完成性,同时获取了所需的目标数据。
示例性地,任务运行可以包括浏览器的操作,如访问登录页面、填写表单、点击按钮等,以及数据的抓取、处理等。
步骤S330,根据预设条件,检测所述任务是否完成,得到所述目标数据。
具体地,预设条件用于检测任务是否完成。在任务运行过程中,根据预设的条件进行任务完成的检测。
示例性地,预设条件可以是等待特定的页面加载完成、某个特定元素的出现、特定的数据提取等。子线程会定期或者根据任务的特性进行检测,以确定任务是否已经完成。
参照图4,图4为本申请任务处理方法的整体流程示意图。在主线程狂阶启动时,生成对应任务池并初始化;然后子线程会启动浏览器,并从任务池中获取任务并运行;在任务运行的过程中,子线程会判断当前处理的任务是否已经完成。如果任务已经完成,子线程会将其在任务池中标记为已完成,并继续获取并处理剩下的任务,直到所有任务完成,然后结束当前子线程。
进一步地,所述步骤S330,根据预设条件,检测所述任务是否完成,得到所述目标数据,包括:
步骤S331,获取所述任务的历史日期的入库数据量及当前日期的入库数据量;
具体地,在任务执行过程中,会有历史日期的入库数据和当前日期的入库数据两部分。历史日期的入库数据是之前执行任务所获得的数据总量,而当前日期的入库数据是当前任务执行后获得的数据总量。
步骤S332,判断所述历史日期的入库数据量与所述当前日期的入库数据量是否一致;
具体地,通过比较历史日期的入库数据量和当前日期的入库数据量,判断它们是否相等。如果历史日期的入库数据量与当前日期的入库数据量一致,说明当前任务执行没有新增数据或有数据丢失。
步骤S333,若所述历史日期的入库数据量与所述当前日期的入库数据量一致,则得到所述目标数据。
具体地,在历史日期的入库数据量与当前日期的入库数据量一致的情况下,可以确定当前任务执行没有遗漏或错误。因此,所述目标数据可以直接从当前日期的入库数据中获取。
进一步地,步骤S332,判断所述历史日期的入库数据量与所述当前日期的入库数据量是否一致,之后,还包括:
步骤S334,若所述历史日期的入库数据量与所述当前日期的入库数据量不一致,则返回执行步骤S220:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
具体地,在历史日期的入库数据量与当前日期的入库数据量不一致的情况下,可以确定当前任务执行存在遗漏或错误。因此,可以重新返回执行步骤S310:锁定所述任务,生成对应的任务标记。
本实施例通过上述方案,具体通过子线程在获取任务后,锁定任务并生成对应的任务标记,根据任务标记运行任务,并根据预设条件进行任务完成的检测。在检测到任务完成时,子线程可以获取浏览器中的目标数据,避免了其他线程同时处理同一个任务,确保了任务的独立性和完成性;通过将历史日期的入库数据量与当前日期的入库数据量进行对比,提升数据的完整性和准确性。
参照图5,图5为本申请任务处理方法第三示例性实施例的流程示意图。基于上述图2、3所示的实施例,所述步骤S320,基于所述任务标记,运行所述任务,包括:
步骤S510,获取所述浏览器的接口参数;
具体地,在运行任务的过程中,子线程可以从浏览器中获取接口参数。接口参数可以表示浏览器的状态,用于确定任务是否被中断。接口参数可能包括浏览器的状态信息、会话ID、Cookie、请求头信息等。
步骤S520,根据所述接口参数,检测所述任务是否中断;
具体地,子线程可以利用接口参数进行任务中断的检测,可以包括检查是否出现了错误页面、网络连接是否中断、特定元素是否存在等等。通过检测这些指标,可以判断任务是否中断或出现异常情况。
步骤S530,若检测到所述任务中断,则生成扫码请求指令并发送;
具体地,如果子线程检测到任务中断,说明需要进行人工扫码登录等操作来继续任务的进行。在这种情况下,子线程会生成扫码请求指令,这可能包括发送通知、生成扫码登录截图、提供扫码登录的URL等。这些指令会被发送到相应的处理机制,通常是通过消息队列、邮件、API调用等方式实现。
步骤S540,接收扫码完成指令,根据所述扫码完成指令,执行如下步骤S220:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
具体地,根据接收到的扫码完成指令,子线程会执行相应的步骤。这可能包括重新锁定任务以避免其他线程处理该任务,生成任务标记并更新数据库中的任务状态。然后,子线程可以启动任务继续执行,包括访问特定页面、获取数据、进行后续操作等。
进一步地,所述步骤S540,接收扫码完成指令,包括:基于预设定时机制,接收所述扫码完成指令。
具体地,子线程会可以根据定时机制,来定期检测扫码完成指令是否已经返回。这可以通过轮询、异步回调等方式实现。一旦接收到扫码完成指令,说明用户已经成功扫码登录并完成相应操作。
示例性地,参照图4,图4为本申请任务处理方法的整体流程示意图。如果子线程发现任务中断,比如需要人工扫码登录的情况,子线程会将当前任务标记为未完成,允许其他子线程获取该任务,并发送警告通知和扫码登录截图,等待人工扫码登录。定时检测登录状态后,子线程会继续完成剩下待完成的任务,直至任务池中的所有任务完成,然后结束子线程。
本实施例通过上述方案,具体通过检测任务终端,并定时检测扫码完成指令,系统可以及时发现异常任务以通知操作人员进行处理,并自动感知操作人员的扫码登录动作,相应地进行后续任务的启动,也即,可以进行通知等待再次扫码断点续爬,可以解决异常掉线的情况,减少人工干预,提高任务处理自动化流程的效率和准确性。
参照图6,图6为本申请任务处理方法第四示例性实施例的流程示意图。基于上述图2、3所示的实施例,步骤S330,根据预设条件,检测所述任务是否完成,得到所述目标数据之后,还包括:
步骤S610,获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致;
具体地,入库数据是在任务完成之后,将目标数据存储于数据库中。因此,在任务完成后,主线程可以获取历史日期的入库数据和当前日期的入库数据,并比较当前日期的入库数据与历史日期的入库数据是否一致。例如,可以通过比较数据的条目、字段、特定标识符等进行判断。其中,入库数据可能包括采集的网页内容、数据、相关的元信息等。
步骤S620,若所述当前日期的入库数据与所述历史日期的入库数据不一致,则基于所述当前日期的入库数据,确定遗漏任务;
步骤S630,针对所述遗漏任务,更新所述任务池,并执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
具体地,如果当前日期的入库数据与历史日期的入库数据一致,表明不存在遗漏任务。如果当前日期的入库数据与历史日期的入库数据不一致,表明存在遗漏任务。主线程会根据检测结果确定遗漏的任务,并更新任务池。其中,可以根据标记遗漏任务、生成任务标识、更新数据库中的任务状态对任务池进行更新。在更新任务池后,主线程会重新执行步骤S220以及之后的步骤。
示例性地,参照图4,图4为本申请任务处理方法的整体流程示意图。在当所有子线程结束后,也即所有任务已经完成之后,主线程会接收到通知。然后,主线程会对比当前日期的入库数据与历史日期的入库数据,以判断某个任务的完整性。如果发现某个任务的数据不完整,主线程会再次启动线程生成遗漏数据的任务池,并调度子线程重新开启任务。这样会循环检测,直至达到设置的超时阈值或任务完成。最后,主线程会进行当前日期的任务内容总结,并将日志推送。
进一步地,所述步骤S610,获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致之后,还包括:
步骤S640,若所述当前日期的入库数据与所述历史日期的入库数据一致,则基于所述当前日期的入库数据,生成日志报告并推送。
具体地,主线程可以根据当前日期的入库数据生成日志报告。日志报告可以包含任务的摘要、统计信息、成功与失败的任务数量、获取的数据量等。生成日志报告的过程可能包括整理和汇总数据,生成文本或结构化报告等。
此外,在生成日志报告后,主线程会执行推送操作,将报告发送给预定的接收者。这可以通过各种方式进行,例如通过电子邮件、即时通讯工具、API调用等,以确保相关人员能够及时收到报告。
本实施例通过上述方案,具体通过在任务完成之后,通过主线程获取历史日期的入库数据和当前日期的入库数据,并进行一致性的检测。如果发现遗漏任务,主线程会更新任务池重新启动子线程执行任务,提升了任务的完整性和数据的准确性。
此外,本申请实施例还提出一种任务处理装置,所述任务处理装置包括:
启动模块,用于在主线程启动时,生成任务池,所述主线程包括若干子线程;
驱动模块,用于分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
运行模块,用于锁定所述任务并运行,得到所述浏览器的目标数据。
本实施例实现任务处理的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如上所述的任务处理方法的步骤。
由于本任务处理程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如上所述的任务处理方法的步骤。
由于本任务处理程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本申请实施例提出的任务处理方法、装置、终端设备以及存储介质,通过在主线程启动时,生成任务池,所述主线程包括若干子线程;分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;锁定所述任务并运行,得到所述浏览器的目标数据。基于本申请方案,通过在主线程中生成任务池并启动多个子线程,每个子线程负责驱动一个浏览器,并基于锁定机制,使得每个任务只被一个子线程获取和处理,可以实现任务的并行处理,并避免多个子线程同时处理同一个任务,解决了任务处理的效率低、稳定性差的技术问题,提升了任务处理的效率和稳定性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种任务处理方法,其特征在于,所述任务处理方法包括以下步骤:
在主线程启动时,生成任务池,所述主线程包括若干子线程;
分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
锁定所述任务并运行,得到所述浏览器的目标数据;
所述锁定所述任务并运行,得到所述浏览器的目标数据的步骤包括:
锁定所述任务,生成对应的任务标记;
基于所述任务标记,运行所述任务;
所述基于所述任务标记,运行所述任务的步骤包括:获取所述浏览器的接口参数;根据所述接口参数,检测所述任务是否中断;若检测到所述任务中断,则生成扫码请求指令并发送;接收扫码完成指令,根据所述扫码完成指令,执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
根据预设条件,检测所述任务是否完成,得到所述目标数据;
所述根据预设条件,检测所述任务是否完成,得到所述目标数据的步骤包括:
获取所述任务的历史日期的入库数据量及当前日期的入库数据量;判断所述历史日期的入库数据量与所述当前日期的入库数据量是否一致;若所述历史日期的入库数据量与所述当前日期的入库数据量一致,则得到所述目标数据;若所述历史日期的入库数据量与所述当前日期的入库数据量不一致,则执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
2.如权利要求1所述的任务处理方法,其特征在于,所述接收扫码完成指令的步骤包括:
基于预设定时机制,接收所述扫码完成指令。
3.如权利要求1所述的任务处理方法,其特征在于,所述根据预设条件,检测所述任务是否完成,得到所述目标数据的步骤之后,还包括:
获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致;
若所述当前日期的入库数据与所述历史日期的入库数据不一致,则基于所述当前日期的入库数据,确定遗漏任务;
针对所述遗漏任务,更新所述任务池,并执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
4.如权利要求3所述的任务处理方法,其特征在于,所述获取历史日期的入库数据及当前日期的入库数据,并检测所述当前日期的入库数据与所述历史日期的入库数据是否一致的步骤之后,还包括:
若所述当前日期的入库数据与所述历史日期的入库数据一致,则基于所述当前日期的入库数据,生成日志报告并推送。
5.一种任务处理装置,其特征在于,所述任务处理装置包括:
启动模块,用于在主线程启动时,生成任务池,所述主线程包括若干子线程;
驱动模块,用于分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
运行模块,用于锁定所述任务并运行,得到所述浏览器的目标数据;
所述运行模块,还用于,
锁定所述任务,生成对应的任务标记;
基于所述任务标记,运行所述任务;
所述运行模块,还用于,获取所述浏览器的接口参数;根据所述接口参数,检测所述任务是否中断;若检测到所述任务中断,则生成扫码请求指令并发送;接收扫码完成指令,根据所述扫码完成指令,执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务;
根据预设条件,检测所述任务是否完成,得到所述目标数据;
所述运行模块,还用于,获取所述任务的历史日期的入库数据量及当前日期的入库数据量;判断所述历史日期的入库数据量与所述当前日期的入库数据量是否一致;若所述历史日期的入库数据量与所述当前日期的入库数据量一致,则得到所述目标数据;若所述历史日期的入库数据量与所述当前日期的入库数据量不一致,则执行如下步骤:分别通过所述若干子线程驱动对应的浏览器,并从所述任务池中获取对应的任务。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如权利要求1-4中任一项所述的任务处理方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如权利要求1-4中任一项所述的任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310873663.3A CN116594756B (zh) | 2023-07-17 | 2023-07-17 | 任务处理方法、装置、终端设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310873663.3A CN116594756B (zh) | 2023-07-17 | 2023-07-17 | 任务处理方法、装置、终端设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116594756A CN116594756A (zh) | 2023-08-15 |
CN116594756B true CN116594756B (zh) | 2023-11-03 |
Family
ID=87612090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310873663.3A Active CN116594756B (zh) | 2023-07-17 | 2023-07-17 | 任务处理方法、装置、终端设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594756B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065055A (zh) * | 2021-04-21 | 2021-07-02 | 平安国际智慧城市科技股份有限公司 | 新闻资讯抓取方法、装置、电子设备及存储介质 |
CN113765898A (zh) * | 2021-08-20 | 2021-12-07 | 北京来也网络科技有限公司 | 基于ai和rpa的登录方法、装置、设备和介质 |
CN114936077A (zh) * | 2022-05-19 | 2022-08-23 | 京东方科技集团股份有限公司 | 一种基于python的任务轮询方法、任务管理系统 |
CN115686771A (zh) * | 2022-08-23 | 2023-02-03 | 深圳市豪斯莱科技有限公司 | 小程序版本发布方法、系统、终端设备以及存储介质 |
CN116501945A (zh) * | 2023-06-27 | 2023-07-28 | 深圳市豪斯莱科技有限公司 | 一种多线程浏览器驱动爬虫方法、系统和可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201107273D0 (en) * | 2011-04-28 | 2011-06-15 | Inq Entpr Ltd | Application control in electronic devices |
-
2023
- 2023-07-17 CN CN202310873663.3A patent/CN116594756B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065055A (zh) * | 2021-04-21 | 2021-07-02 | 平安国际智慧城市科技股份有限公司 | 新闻资讯抓取方法、装置、电子设备及存储介质 |
CN113765898A (zh) * | 2021-08-20 | 2021-12-07 | 北京来也网络科技有限公司 | 基于ai和rpa的登录方法、装置、设备和介质 |
CN114936077A (zh) * | 2022-05-19 | 2022-08-23 | 京东方科技集团股份有限公司 | 一种基于python的任务轮询方法、任务管理系统 |
CN115686771A (zh) * | 2022-08-23 | 2023-02-03 | 深圳市豪斯莱科技有限公司 | 小程序版本发布方法、系统、终端设备以及存储介质 |
CN116501945A (zh) * | 2023-06-27 | 2023-07-28 | 深圳市豪斯莱科技有限公司 | 一种多线程浏览器驱动爬虫方法、系统和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116594756A (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8132095B2 (en) | Auditing a website with page scanning and rendering techniques | |
US8365062B2 (en) | Auditing a website with page scanning and rendering techniques | |
EP2668591A2 (en) | Rule-based validation of websites | |
CN106991046B (zh) | 应用测试方法及装置 | |
US20220121981A1 (en) | Cognitive Error Recommendation Based on Log Data | |
CN111078567A (zh) | 自动化测试平台的报告生成方法、终端和存储介质 | |
CN110267215B (zh) | 一种数据检测方法、设备及存储介质 | |
CN111209166A (zh) | 一种面向b/s架构业务系统的自动巡检系统 | |
CN110740071A (zh) | 一种网络接口监控的方法、装置及系统 | |
JP4460620B2 (ja) | 情報サービス提供方法およびサーバ | |
CN112395251A (zh) | 数据文件的智能解析方法、装置、电子设备及存储介质 | |
EP4124948A1 (en) | Process assembly line with robotic process automation | |
CN111124891B (zh) | 接入状态的检测方法和装置、存储介质及电子装置 | |
US20040143787A1 (en) | Method and system for resolving universal resource locators (URLs) from script code | |
CN116594756B (zh) | 任务处理方法、装置、终端设备以及存储介质 | |
CN110543429A (zh) | 测试用例调试方法、装置及存储介质 | |
CN111309743A (zh) | 报表推送方法及装置 | |
CN103198062B (zh) | 一种监控页面死链和js错误的方法及系统 | |
CN111352947B (zh) | 数据的更新方法、装置、设备及存储介质 | |
CN112883253A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN114036054A (zh) | 代码质量评价方法、装置、设备、介质和程序产品 | |
CN115328764A (zh) | 基于自动化测试的测试代码优化方法及其相关设备 | |
CN111143206B (zh) | 一种数据获取方法、装置、电子设备及存储介质 | |
CN111966605A (zh) | 一种Redfish的资源自动检索方法、系统及存储介质 | |
CN112799794A (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 | ||
GR01 | Patent grant |