CN107908472A - 数据同步装置、方法及计算机可读存储介质 - Google Patents
数据同步装置、方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107908472A CN107908472A CN201710916482.9A CN201710916482A CN107908472A CN 107908472 A CN107908472 A CN 107908472A CN 201710916482 A CN201710916482 A CN 201710916482A CN 107908472 A CN107908472 A CN 107908472A
- Authority
- CN
- China
- Prior art keywords
- task
- synchrodata
- data synchronization
- synchronous
- queue
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000001360 synchronised effect Effects 0.000 claims abstract description 116
- 230000008569 process Effects 0.000 claims abstract description 38
- 230000015654 memory Effects 0.000 claims abstract description 22
- 238000012549 training Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 14
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000000694 effects Effects 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Tourism & Hospitality (AREA)
- Strategic Management (AREA)
- Educational Technology (AREA)
- Data Mining & Analysis (AREA)
- Educational Administration (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种数据同步装置,包括存储器和处理器,存储器上存储有可在处理器上运行的数据同步程序,该程序被处理器执行时实现如下步骤:在接收到更新请求时,获取与更新请求对应的同步数据,并建立与同步数据对应的同步任务;将同步任务添加至任务队列中,并将同步数据与同步任务关联后存储至缓存区域;当检测到缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理任务队列中的同步任务,以将缓存区域中存储的同步数据发送至外部管理***。本发明还提出一种数据同步方法以及一种计算机可读存储介质。本发明减少了代码冗余,提高了数据同步效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步装置、方法及计算机可读存储介质。
背景技术
教育培训管理机构为了便于业务数据的管理,需要将培训管理***中的数据同步到营业管理***中,现有的数据同步的方式是:营业管理***开放特定的接口给培训管理***,培训管理***在有数据更新时(课程数据、人员数据等相关数据发生增加、删除、修改等操作),实时地触发更新请求,将更新信息同步到营业管理***,而现有的请求方式是在每一个请求方法中添加同步代码进行信息的同步,因此,当培训管理***比较庞大时,例如,培训机构分布在全国各地多个城市,这就造成培训管理***每天的更新请求非常频繁,需要触发大量的更新请求,导致产生大量的代码冗余,进而导致对数据的同步效率低下。
发明内容
本发明提供一种数据同步装置、方法及计算机可读存储介质,其主要目的在于减少代码冗余,提高数据同步效率。
为实现上述目的,本发明提供一种数据同步装置,同步装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的数据同步程序,所述数据同步程序被所述处理器执行时实现如下步骤:
在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务;
将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域;
当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
可选地,所述当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***的步骤可以替换为如下步骤:
当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
可选地,所述处理器还用于执行所述数据同步程序,以实现如下步骤:
在启动线程池中的线程处理任务队列中的同步任务时,根据待处理的同步任务的总数量以及预先设置的所述线程池的最大线程数量,动态地调整启动的线程的数量。
可选地,所述将同步任务添加至任务队列中的步骤包括:
将所述同步任务按照该同步任务的建立时间的由先至后的顺序添加至所述任务队列中。
可选地,所述处理器还用于执行所述数据同步程序,以在所述将同步任务添加至任务队列中的步骤之前,还实现如下步骤:
在获取到与所述更新请求对应的同步数据之后,从所述更新请求中获取机构标识,以根据所述机构标识确定所述待更新请求对应的机构节点的优先级;
所述将同步任务添加至任务队列中的步骤包括:
将所述同步任务按照对应的机构节点的优先级由高至低的顺序添加至所述任务队列中。
此外,为实现上述目的,本发明还提供一种数据同步方法,该方法包括:
在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务;
将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域;
当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
可选地,所述当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***的步骤可以替换为:
当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
可选地,所述数据同步方法还包括:
在启动线程池中的线程处理任务队列中的同步任务时,根据待处理的同步任务的总数量以及预先设置的所述线程池的最大线程数量,动态地调整启动的线程的数量。
可选地,在所述将同步任务添加至任务队列中的步骤之前,所述方法还包括如下步骤:
在获取到与所述更新请求对应的同步数据之后,从所述更新请求中获取机构标识,以根据所述机构标识确定所述待更新请求对应的机构节点的优先级;
所述将同步任务添加至任务队列中的步骤包括:
将所述同步任务按照对应的机构节点的优先级由高至低的顺序添加至所述任务队列中。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据同步程序,所述数据同步程序可被一个或者多个处理器执行,以实现如上所述的数据同步方法的步骤。
本发明提出的数据同步装置、方法及计算机可读存储介质,在侦查到有更新请求时,从该更新请求中获取待更新的数据,并根据获取的数据生成同步数据,建立与该同步数据对应同步任务,将该同步任务添加到任务队列中,同时将上述同步数据与同步任务关联后缓存到缓存区域中,在家呢到缓存区域中的缓存的同步数据的存储量达到预设阈值时,启动线程池中的线程开始处理任务队列中的同步任务,以将缓存区域中缓存的同步数据发送到与对接的外部管理***中,本发明通过上述建立任务列表同时缓存数据的方式对数据进行批量的同步处理,不需要在每一次有更新请求时都触发更新请求,避免了出现代码冗余的情况,此外,通过线程池中的线程处理任务队列的任务,极大地提高了数据同步的效率。
附图说明
图1为本发明数据同步装置较佳实施例的示意图;
图2为本发明数据同步装置一实施例中数据同步程序的功能模块示意图;
图3为本发明数据同步方法较佳实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据同步装置。参照图1所示,为本发明数据同步装置较佳实施例的示意图。
在本实施例中,数据同步装置可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、便携计算机等具有显示功能的可移动式终端设备。
该数据同步装置包括存储器11、处理器12,通信总线13,以及网络接口14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是数据同步装置的内部存储单元,例如该数据同步装置的硬盘。存储器11在另一些实施例中也可以是数据同步装置的外部存储设备,例如数据同步装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括数据同步装置的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于数据同步装置的应用软件及各类数据,例如数据同步程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据同步程序等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置与其他电子设备之间建立通信连接。
图1仅示出了具有组件11-14以及数据同步程序的数据同步装置,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该装置还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在数据同步装置中处理的信息以及用于显示可视化的用户界面。
可选地,该装置还可以包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。该装置的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
在图1所示的装置实施例中,存储器11中存储有数据同步程序;处理器12执行存储器11中存储的数据同步程序时实现如下步骤:
在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务。
为了便于理解,以下内容以对培训班管理***中的数据更新为例对本发明实施例的方案进行说明,培训班管理***可运行在本实施例提出的同步装置中,同步装置可以与一个或者多个培训班管理客户端建立远程通信,若客户端在使用过程中产生了新的数据,则需要同步地将这些数据更新到外部管理***。例如客户端中有课程数据、人员数据等相关数据发生增加、删除、修改等操作时,会由客户端向同步装置发送更新请求,将这些操作对数据更新后的新数据发送到与同步装置对接的外部管理***中,如营业管理***。本实施例提出的同步装置通过特定的接口与外部管理***对接。
客户端对上述更新操作进行实时地侦测,例如,对于课程数据、人员数据等相关数据的增加操作、删除操作、修改操作等。在侦测到有上述类型的更新操作时,获取更新操作对应的数据内容。以对课程数据的修改为例,在侦测到修改操作时,获取修改操作对应的修改后的数据内容以及该数据内容所在的位置,生成同步数据,客户端基于该同步数据触发更新请求发送至同步装置,同步装置在接收到更新请求时,获取与该更新请求对应的同步数据,并建立与同步数据对应的同步任务。
用于后续通过本实施例的更新装置发送至与更新装置对接的外部管理***,以供外部管理***根据接收到的同步数据,根据修改后的数据内容对对应位置处的数据进行修改,以实现数据在不同***中的同步更新。
将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域。
本实施例中,预先建立一个任务队列,将更新装置中建立的同步任务添加至该任务队列中,作为待处理的任务。关于同步任务的添加顺序,在一些实施例中,可以在有新的同步任务产生时,将所述同步任务按照该同步任务的建立时间由先至后的顺序添加至所述任务队列中。
或者,在其他实施例中,根据培训班管理***的各个机构节点的优先级顺序排列任务队列中的任务。
具体地,处理器12还用于执行所述数据同步程序,以在所述将同步任务添加至任务队列中的步骤之前,还实现如下步骤:在获取到与所述更新请求对应的同步数据之后,从所述更新请求中获取机构标识,以根据所述机构标识确定所述待更新请求对应的机构节点的优先级。
将同步任务添加至任务队列中的步骤包括:将所述同步任务按照对应的机构节点的优先级由高至低的顺序添加至所述任务队列中。
上述机构节点为分布在各个地方的培训班机构,这些机构使用同样的培训班管理客户端,这些客户端在向同步装置发送更新请求时,在更新请求中携带有本机构的机构标识。此外,同步装置预先为每一机构节点设置有不同的优先级顺序,对于优先级高的机构节点更新的数据,可以优先地进行同步,对于优先级低的机构节点更新的数据,可以较迟同步。同步装置根据更新请求中携带的机构标识确定该更新请求对应的结构节点,并根据预先设置的机构节点的优先级顺序,确定该机构节点的优先级,在将对应的同步数据存储到任务列表中,按照优先级高低的顺序进行存储。
此外,同步装置中预先划分有一定大小的存储区域,用于存储同步任务对应的同步数据,该存储区域的大小可以根据实际的应用情况进行设置。
当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
同步装置实时地对缓存区域中的同步数据的存储量或者任务队列中的任务数量进行检测,当缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者任务队列中的任务量达到第二预设阈值时,启动线程池中的线程,按照任务队列中任务的顺序执行同步任务。可以理解的是,可以根据任务量的需要预先设置最大线程数,在每次启动线程池执行任务时,可以根据任务队列中的任务量开启不超过最大线程数的多个线程。
或者,作为一种实施方式,当检测到缓存区域中缓存的同步数据的存储量达到预设阈值时,启动线程池中的线程处理任务队列中的同步任务,以将缓存的同步数据同步到第二***中的步骤可以替换为如下步骤:当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
本实施例提出的数据同步装置,在侦查到有更新请求时,从该更新请求中获取待更新的数据,并根据获取的数据生成同步数据,建立与该同步数据对应同步任务,将该同步任务添加到任务队列中,同时将上述同步数据与同步任务关联后缓存到缓存区域中,在家呢到缓存区域中的缓存的同步数据的存储量达到预设阈值时,启动线程池中的线程开始处理任务队列中的同步任务,以将缓存区域中缓存的同步数据发送到与对接的外部管理***中,本发明通过上述建立任务列表同时缓存数据的方式对数据进行批量的同步处理,不需要在每一次有更新请求时都触发更新请求,避免了出现代码冗余的情况,此外,通过线程池中的线程处理任务队列的任务,极大地提高了数据同步的效率。
可选地,在其他的实施例中,数据同步程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述数据同步程序在数据同步装置中的执行过程。
例如,参照图2所示,为本发明数据同步装置一实施例中的数据同步程序的功能模块示意图,该实施例中,数据同步程序可以被分割为数据处理模块10、任务建立模块20、数据存储模块30和数据发送模块40,示例性地:
数据处理模块10用于:在接收到更新请求时,获取与所述更新请求对应的同步数据;
任务建立模块20用于:建立与所述同步数据对应的同步任务;
数据存储模块30用于:将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域;
数据发送模块40用于:当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
上述数据处理模块10、任务建立模块20、数据存储模块30和数据发送模块40被执行所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明还提供一种数据同步方法。参照图3所示,为本发明数据同步方法较佳实施例的流程图。
在本实施例中,数据同步方法包括:
步骤S10,在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务。
本实施例提出的方法可以由一个装置执行,同步装置可以由软件和/或硬件实现。该装置可以是一台同步装置。为了便于理解,以下内容以对培训班管理***中的数据更新为例对本发明实施例的方案进行说明,培训班管理***可运行在本实施例提出的同步装置中,同步装置可以与一个或者多个培训班管理客户端建立远程通信,若客户端在使用过程中产生了新的数据,则需要同步地将这些数据更新到外部管理***。例如客户端中有课程数据、人员数据等相关数据发生增加、删除、修改等操作时,会由客户端向同步装置发送更新请求,将这些操作对数据更新后的新数据发送到与同步装置对接的外部管理***中,如营业管理***。本实施例提出的同步装置通过特定的接口与外部管理***对接。
客户端对上述更新操作进行实时地侦测,例如,对于课程数据、人员数据等相关数据的增加操作、删除操作、修改操作等。在侦测到有上述类型的更新操作时,获取更新操作对应的数据内容。以对课程数据的修改为例,在侦测到修改操作时,获取修改操作对应的修改后的数据内容以及该数据内容所在的位置,生成同步数据,客户端基于该同步数据触发更新请求发送至同步装置,同步装置在接收到更新请求时,获取与该更新请求对应的同步数据,并建立与同步数据对应的同步任务。
用于后续通过本实施例的更新装置发送至与更新装置对接的外部管理***,以供外部管理***根据接收到的同步数据,根据修改后的数据内容对对应位置处的数据进行修改,以实现数据在不同***中的同步更新。
步骤S20,将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域。
本实施例中,预先建立一个任务队列,将更新装置中建立的同步任务添加至该任务队列中,作为待处理的任务。关于同步任务的添加顺序,在一些实施例中,可以在有新的同步任务产生时,将所述同步任务按照该同步任务的建立时间由先至后的顺序添加至所述任务队列中。
或者,在其他实施例中,根据培训班管理***的各个机构节点的优先级顺序排列任务队列中的任务。
具体地,在所述将同步任务添加至任务队列中的步骤之前,该方法还包括如下步骤:在获取到与所述更新请求对应的同步数据之后,从所述更新请求中获取机构标识,以根据所述机构标识确定所述待更新请求对应的机构节点的优先级。
将同步任务添加至任务队列中的步骤包括:将所述同步任务按照对应的机构节点的优先级由高至低的顺序添加至所述任务队列中。
上述机构节点为分布在各个地方的培训班机构,这些机构使用同样的培训班管理客户端,这些客户端在向同步装置发送更新请求时,在更新请求中携带有本机构的机构标识。此外,同步装置预先为每一机构节点设置有不同的优先级顺序,对于优先级高的机构节点更新的数据,可以优先地进行同步,对于优先级低的机构节点更新的数据,可以较迟同步。同步装置根据更新请求中携带的机构标识确定该更新请求对应的结构节点,并根据预先设置的机构节点的优先级顺序,确定该机构节点的优先级,在将对应的同步数据存储到任务列表中,按照优先级高低的顺序进行存储。
此外,同步装置中预先划分有一定大小的存储区域,用于存储同步任务对应的同步数据,该存储区域的大小可以根据实际的应用情况进行设置。
步骤S30,当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
同步装置实时地对缓存区域中的同步数据的存储量或者任务队列中的任务数量进行检测,当缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者任务队列中的任务量达到第二预设阈值时,启动线程池中的线程,按照任务队列中任务的顺序执行同步任务。可以理解的是,可以根据任务量的需要预先设置最大线程数,在每次启动线程池执行任务时,可以根据任务队列中的任务量开启不超过最大线程数的多个线程。
或者,作为一种实施方式,当检测到缓存区域中缓存的同步数据的存储量达到预设阈值时,启动线程池中的线程处理任务队列中的同步任务,以将缓存的同步数据同步到第二***中的步骤可以替换为如下步骤:当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
本实施例提出的数据同步方法,在侦查到有更新请求时,从该更新请求中获取待更新的数据,并根据获取的数据生成同步数据,建立与该同步数据对应同步任务,将该同步任务添加到任务队列中,同时将上述同步数据与同步任务关联后缓存到缓存区域中,在家呢到缓存区域中的缓存的同步数据的存储量达到预设阈值时,启动线程池中的线程开始处理任务队列中的同步任务,以将缓存区域中缓存的同步数据发送到与对接的外部管理***中,本发明通过上述建立任务列表同时缓存数据的方式对数据进行批量的同步处理,不需要在每一次有更新请求时都触发更新请求,避免了出现代码冗余的情况,此外,通过线程池中的线程处理任务队列的任务,极大地提高了数据同步的效率。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据同步程序,所述数据同步程序可被一个或多个处理器执行,以实现如下操作:
在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务;
将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域;
当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
进一步地,所述当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***的步骤可以替换为如下步骤:
当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
进一步地,所述数据同步程序被处理器执行时还实现如下操作:
在启动线程池中的线程处理任务队列中的同步任务时,根据待处理的同步任务的总数量以及预先设置的所述线程池的最大线程数量,动态地调整启动的线程的数量。
进一步地,所述数据同步程序被处理器执行时还实现如下操作:
将所述同步任务按照该同步任务的建立时间的由先至后的顺序添加至所述任务队列中。
本发明计算机可读存储介质具体实施方式与上述数据同步装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据同步装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据同步程序,所述数据同步程序被所述处理器执行时实现如下步骤:
在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务;
将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域;
当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
2.根据权利要求1所述的数据同步装置,其特征在于,所述当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***的步骤可以替换为如下步骤:
当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
3.根据权利要求1所述的数据同步装置,其特征在于,所述处理器还用于执行所述数据同步程序,以实现如下步骤:
在启动线程池中的线程处理任务队列中的同步任务时,根据待处理的同步任务的总数量以及预先设置的所述线程池的最大线程数量,动态地调整启动的线程的数量。
4.根据权利要求1至3中任一项所述的数据同步装置,其特征在于,所述将同步任务添加至任务队列中的步骤包括:
将所述同步任务按照该同步任务的建立时间的由先至后的顺序添加至所述任务队列中。
5.根据权利要求1至3中任一项所述的数据同步装置,其特征在于,所述处理器还用于执行所述数据同步程序,以在所述将同步任务添加至任务队列中的步骤之前,还实现如下步骤:
在获取到与所述更新请求对应的同步数据之后,从所述更新请求中获取机构标识,以根据所述机构标识确定所述待更新请求对应的机构节点的优先级;
所述将同步任务添加至任务队列中的步骤包括:
将所述同步任务按照对应的机构节点的优先级由高至低的顺序添加至所述任务队列中。
6.一种数据同步方法,其特征在于,所述方法包括:
在接收到更新请求时,获取与所述更新请求对应的同步数据,并建立与所述同步数据对应的同步任务;
将同步任务添加至任务队列中,并将所述同步数据与所述同步任务关联后存储至缓存区域;
当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
7.根据权利要求6所述的数据同步方法,其特征在于,所述当检测到所述缓存区域中缓存的同步数据的存储量达到第一预设阈值,或者所述任务队列中的任务量达到第二预设阈值时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***的步骤可以替换为:
当检测到同步时间间隔达到预设时间间隔时,启动线程池中的线程处理所述任务队列中的同步任务,以将所述缓存区域中存储的同步数据发送至外部管理***。
8.根据权利要求6所述的数据同步方法,其特征在于,所述数据同步方法还包括:
在启动线程池中的线程处理任务队列中的同步任务时,根据待处理的同步任务的总数量以及预先设置的所述线程池的最大线程数量,动态地调整启动的线程的数量。
9.根据权利要求6至8中任一项所述的数据同步方法,其特征在于,在所述将同步任务添加至任务队列中的步骤之前,所述方法还包括如下步骤:
在获取到与所述更新请求对应的同步数据之后,从所述更新请求中获取机构标识,以根据所述机构标识确定所述待更新请求对应的机构节点的优先级;
所述将同步任务添加至任务队列中的步骤包括:
将所述同步任务按照对应的机构节点的优先级由高至低的顺序添加至所述任务队列中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据同步程序,所述数据同步程序可被一个或者多个处理器执行,以实现如权利要求6至9中任一项所述的数据同步方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710916482.9A CN107908472A (zh) | 2017-09-30 | 2017-09-30 | 数据同步装置、方法及计算机可读存储介质 |
PCT/CN2018/089187 WO2019062182A1 (zh) | 2017-09-30 | 2018-05-31 | 数据同步装置、方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710916482.9A CN107908472A (zh) | 2017-09-30 | 2017-09-30 | 数据同步装置、方法及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107908472A true CN107908472A (zh) | 2018-04-13 |
Family
ID=61841078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710916482.9A Pending CN107908472A (zh) | 2017-09-30 | 2017-09-30 | 数据同步装置、方法及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107908472A (zh) |
WO (1) | WO2019062182A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572919A (zh) * | 2018-05-30 | 2018-09-25 | 平安普惠企业管理有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN109116818A (zh) * | 2018-08-08 | 2019-01-01 | 新智能源***控制有限责任公司 | 一种scada***升级时的实时数据转储方法和装置 |
CN109299122A (zh) * | 2018-09-26 | 2019-02-01 | 努比亚技术有限公司 | 一种数据同步方法、设备和计算机可存储介质 |
CN109542428A (zh) * | 2018-10-16 | 2019-03-29 | 平安普惠企业管理有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN109542216A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 人机交互方法、***、计算机设备及存储介质 |
WO2019062182A1 (zh) * | 2017-09-30 | 2019-04-04 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN109634853A (zh) * | 2018-11-30 | 2019-04-16 | 平安科技(深圳)有限公司 | 数据测试方法、***、电子装置及计算机可读存储介质 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110602165A (zh) * | 2019-08-08 | 2019-12-20 | 数字广东网络建设有限公司 | 政务数据同步方法、装置、***、计算机设备和存储介质 |
CN110765288A (zh) * | 2019-09-04 | 2020-02-07 | 北京旷视科技有限公司 | 一种图像信息同步方法、装置、***及存储介质 |
CN111340202A (zh) * | 2018-12-18 | 2020-06-26 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111488366A (zh) * | 2020-04-09 | 2020-08-04 | 百度在线网络技术(北京)有限公司 | 关系型数据库更新方法、装置、设备及存储介质 |
CN111666339A (zh) * | 2020-05-26 | 2020-09-15 | 和芯星通科技(北京)有限公司 | 一种多线程数据同步方法 |
CN111865834A (zh) * | 2019-04-26 | 2020-10-30 | 华为技术有限公司 | 一种消息处理方法及装置 |
CN112818054A (zh) * | 2020-10-15 | 2021-05-18 | 广州南天电脑***有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
WO2023279677A1 (zh) * | 2021-07-06 | 2023-01-12 | 上海商汤智能科技有限公司 | 课程定制方法、装置、设备、存储介质及程序 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569123B (zh) * | 2019-07-31 | 2022-08-02 | 苏宁云计算有限公司 | 线程分配方法、装置、计算机设备和存储介质 |
CN111444203B (zh) * | 2020-03-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种同步处理方法、装置、设备及介质 |
CN112187889A (zh) * | 2020-09-15 | 2021-01-05 | 中信银行股份有限公司 | 一种数据同步方法、装置及存储介质 |
CN113467661A (zh) * | 2021-07-19 | 2021-10-01 | 维沃移动通信有限公司 | 任务同步方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140279871A1 (en) * | 2013-03-13 | 2014-09-18 | Marcelo Ochoa | System and method for providing near real time data synchronization |
CN105208060A (zh) * | 2014-06-19 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 业务数据同步方法、装置及*** |
CN105677849A (zh) * | 2016-01-06 | 2016-06-15 | 北京京东尚科信息技术有限公司 | 数据更新方法和装置 |
CN106156165A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 异构数据源之间的数据同步方法和装置 |
CN106412088A (zh) * | 2016-10-25 | 2017-02-15 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446176B1 (en) * | 2000-03-09 | 2002-09-03 | Storage Technology Corporation | Method and system for transferring data between primary storage and secondary storage using a bridge volume and an internal snapshot copy of the data being transferred |
CN104408048B (zh) * | 2014-10-27 | 2017-06-13 | 清华大学 | 一种缓冲式云存储数据同步的方法和装置 |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
-
2017
- 2017-09-30 CN CN201710916482.9A patent/CN107908472A/zh active Pending
-
2018
- 2018-05-31 WO PCT/CN2018/089187 patent/WO2019062182A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140279871A1 (en) * | 2013-03-13 | 2014-09-18 | Marcelo Ochoa | System and method for providing near real time data synchronization |
CN105208060A (zh) * | 2014-06-19 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 业务数据同步方法、装置及*** |
CN106156165A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 异构数据源之间的数据同步方法和装置 |
CN105677849A (zh) * | 2016-01-06 | 2016-06-15 | 北京京东尚科信息技术有限公司 | 数据更新方法和装置 |
CN106412088A (zh) * | 2016-10-25 | 2017-02-15 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019062182A1 (zh) * | 2017-09-30 | 2019-04-04 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN108572919A (zh) * | 2018-05-30 | 2018-09-25 | 平安普惠企业管理有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN109116818A (zh) * | 2018-08-08 | 2019-01-01 | 新智能源***控制有限责任公司 | 一种scada***升级时的实时数据转储方法和装置 |
CN109299122A (zh) * | 2018-09-26 | 2019-02-01 | 努比亚技术有限公司 | 一种数据同步方法、设备和计算机可存储介质 |
CN109542216A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 人机交互方法、***、计算机设备及存储介质 |
US11842574B2 (en) | 2018-10-11 | 2023-12-12 | Ping An Technology (Shenzhen) Co., Ltd. | Man-machine interaction method and system, computer device, and storage medium |
CN109542428A (zh) * | 2018-10-16 | 2019-03-29 | 平安普惠企业管理有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN109542428B (zh) * | 2018-10-16 | 2024-06-11 | 北京神州数码云科信息技术有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN109634853A (zh) * | 2018-11-30 | 2019-04-16 | 平安科技(深圳)有限公司 | 数据测试方法、***、电子装置及计算机可读存储介质 |
CN111340202A (zh) * | 2018-12-18 | 2020-06-26 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111340202B (zh) * | 2018-12-18 | 2023-06-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111865834A (zh) * | 2019-04-26 | 2020-10-30 | 华为技术有限公司 | 一种消息处理方法及装置 |
CN111865834B (zh) * | 2019-04-26 | 2021-12-03 | 华为技术有限公司 | 一种消息处理方法及装置 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110602165A (zh) * | 2019-08-08 | 2019-12-20 | 数字广东网络建设有限公司 | 政务数据同步方法、装置、***、计算机设备和存储介质 |
CN110765288A (zh) * | 2019-09-04 | 2020-02-07 | 北京旷视科技有限公司 | 一种图像信息同步方法、装置、***及存储介质 |
CN110765288B (zh) * | 2019-09-04 | 2022-09-27 | 北京旷视科技有限公司 | 一种图像信息同步方法、装置、***及存储介质 |
CN111488366A (zh) * | 2020-04-09 | 2020-08-04 | 百度在线网络技术(北京)有限公司 | 关系型数据库更新方法、装置、设备及存储介质 |
CN111666339A (zh) * | 2020-05-26 | 2020-09-15 | 和芯星通科技(北京)有限公司 | 一种多线程数据同步方法 |
CN111666339B (zh) * | 2020-05-26 | 2023-10-24 | 和芯星通科技(北京)有限公司 | 一种多线程数据同步方法 |
CN112818054A (zh) * | 2020-10-15 | 2021-05-18 | 广州南天电脑***有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
WO2023279677A1 (zh) * | 2021-07-06 | 2023-01-12 | 上海商汤智能科技有限公司 | 课程定制方法、装置、设备、存储介质及程序 |
Also Published As
Publication number | Publication date |
---|---|
WO2019062182A1 (zh) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908472A (zh) | 数据同步装置、方法及计算机可读存储介质 | |
KR102324286B1 (ko) | 애플리케이션 인터페이스 관리 방법 및 장치 | |
US20160070431A1 (en) | Sync based on navigation history | |
CN109446570B (zh) | 业务流程展示方法、装置、计算机设备以及存储介质 | |
CN104704468B (zh) | Web应用程序的跨***安装 | |
CN108427698A (zh) | 预测模型的更新装置、方法及计算机可读存储介质 | |
US20130283267A1 (en) | Virtual machine construction | |
CN106201613A (zh) | 预热软件安装 | |
CN109816481A (zh) | 账单处理方法、装置及计算机可读存储介质 | |
CN109614238A (zh) | 一种目标对象识别方法、装置、***及可读存储介质 | |
CN108055320B (zh) | 资源下载的处理方法、终端设备及计算机可读存储介质 | |
CN107357857A (zh) | 一种更新缓存信息的方法及服务节点设备 | |
CN105468707A (zh) | 一种基于缓存的数据处理方法及装置 | |
CN108431763A (zh) | 通过网络服务管理多个云存储装置 | |
CN107844352A (zh) | 一种应用界面配置方法和装置 | |
US10242102B2 (en) | Network crawling prioritization | |
CN107247550A (zh) | 一种应用切换方法以及装置、计算机装置、可读存储介质 | |
CN104424224B (zh) | 一种文件索引存储方法及装置 | |
CN112579048A (zh) | 小程序集成方法、装置、电子设备及存储介质 | |
CN108073698B (zh) | 实时动画显示方法、装置、电子终端及可读存储介质 | |
GB2583718A (en) | Method, apparatus and computer program for updating a cluster probability model | |
CN103123651A (zh) | 一种快速查看多个同类文件的方法、装置和移动设备 | |
CN108075914A (zh) | 一种动态扩容缩容的方法及网络设备 | |
CN106648287A (zh) | 一种更换应用图标的方法及终端 | |
CN107924290A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180413 |