CN110266779A - 一种基于zookeeper的主从本地定时任务处理方法及系统 - Google Patents
一种基于zookeeper的主从本地定时任务处理方法及系统 Download PDFInfo
- Publication number
- CN110266779A CN110266779A CN201910496227.2A CN201910496227A CN110266779A CN 110266779 A CN110266779 A CN 110266779A CN 201910496227 A CN201910496227 A CN 201910496227A CN 110266779 A CN110266779 A CN 110266779A
- Authority
- CN
- China
- Prior art keywords
- node
- zookeeper
- application server
- principal
- listing
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1895—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于zookeeper的主从本地定时任务处理方法,需提供zookeeper服务和复数个应用服务器,在每一应用服务器启动时,在zookeeper目录下创建一个节点,并为节点分配一节点数字,存储在对应应用服务器内存;当zookeeper目录下的节点数字变化时,zookeeper服务广播通知各应用服务器;在各应用服务器收到广播后,获取zookeeper目录下所有节点数字,生成节点列表存储于本地内存;每一应用服务器获取本地存储的节点列表,从节点列表中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。本发明还提供一种基于zookeeper的主从本地定时任务处理系统,实现主从本地定时任务的高效处理。
Description
技术领域
本发明涉及集群服务器领域,尤其涉及一种基于zookeeper的主从本地定时任务处理方法及系统。
背景技术
早期在开发应用服务的过程中,经常会在应用服务器做一些定时任务,用于定期统计分析或者其他的用途。这种情况下,在单应用服务器下是不会出现问题的,但是在集群环境下,多台应用服务器同时启动定时任务,会造成代码重复执行、资源浪费、系统问题,现有的将多台应用服务器中的其中一台设置为主服务器,其他为从服务器,由主服务器通知各个从服务器自己为主服务器,并执行对应的任务,但当主服务器出现问题时,无法及时的更换其他从服务器中的一个作为主服务器,影响服务器的正常运行。
发明内容
本发明要解决的技术问题之一,在于提供一种基于zookeeper的主从本地定时任务处理方法,实现主从本地定时任务的高效处理。
本发明要解决的技术问题之一是这样实现的:一种基于zookeeper的主从本地定时任务处理方法,需提供zookeeper服务和复数个应用服务器,所述方法包括如下步骤:
步骤1、在每一应用服务器启动时,在zookeeper目录下创建一个节点,并为所述节点分配一个节点数字,存储在对应应用服务器内存中;
步骤2、当zookeeper目录下的节点数字发生变化时,zookeeper服务广播通知各应用服务器;
步骤3、在各应用服务器收到广播之后,获取zookeeper目录下所有节点数字,生成节点列表存储于本地内存;
步骤4、每一应用服务器获取本地存储的节点列表,从所述节点列表中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。
进一步的,所述步骤1中的节点数字为增量数字,节点数字用于唯一标识一应用服务器。
进一步的,所述步骤1还包括:各应用服务器监听zookeeper目录的所有变化。
进一步的,所述节点列表中存储的节点数字按升序排列存储。
进一步的,所述方法还包括步骤5、当主节点宕机时,删除当前zookeeper目录下当前主节点对应的数字,通过zookeeper服务广播通知各应用服务器更新节点列表,并将新的节点列表中第一个数字对应的应用服务器作为新的主节点,其他作为从节点。
本发明要解决的技术问题之二,在于提供一种基于zookeeper的主从本地定时任务处理系统,实现主从本地定时任务的高效处理。
本发明要解决的技术问题之二是这样实现的:一种基于zookeeper的主从本地定时任务处理系统,需提供zookeeper服务和复数个应用服务器,所述系统包括:
一注册模块,用于在每一应用服务器启动时,在zookeeper目录下创建一个节点,并为所述节点分配一个节点数字,存储在对应应用服务器内存中;
一广播模块,用于当zookeeper目录下的节点数字发生变化时,zookeeper服务广播通知各应用服务器;
一节点列表创建模块,用于在各应用服务器收到广播之后,获取zookeeper目录下所有节点数字,生成节点列表存储于本地内存;
一任务执行模块,用于每一应用服务器获取本地存储的节点列表,从所述节点列表中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。
进一步的,所述注册模块中的节点数字为增量数字,节点数字用于唯一标识一应用服务器。
进一步的,所述注册模块还包括:各应用服务器监听zookeeper目录的所有变化。
进一步的,所述节点列表中存储的节点数字按升序排列存储。
进一步的,所述系统还包括一节点列表更新模块,用于当主节点宕机时,删除当前zookeeper目录下当前主节点对应的数字,通过zookeeper服务广播通知各应用服务器更新节点列表,并将新的节点列表中第一个数字对应的应用服务器作为新的主节点,其他作为从节点。
本发明具有如下优点:
通过zookeeper服务广播的方式通知各集群应用服务器,应用服务器本地存储有集群服务器对应的节点数字,根据节点数字确定主节点,在任务执行之前,先验证当前应用服务器是否为主节点,如果是主节点,则执行当前任务,如果是从节点,则不执行当前任务,从而实现主从本地定时任务的高效处理,大大降低系统故障问题,避免代码重复执行。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种基于zookeeper的主从本地定时任务处理方法执行流程图。
图2为本发明一种基于zookeeper的主从本地定时任务处理系统逻辑框图。
具体实施方式
如图1所示,一种基于zookeeper的主从本地定时任务处理方法,需提供zookeeper服务和复数个应用服务器,所述方法包括如下步骤:
步骤1、在每一应用服务器启动时,在zookeeper目录“SERVICE_NODE”下创建一个节点,并为所述节点分配一个节点数字,存储在对应应用服务器内存中;同时各应用服务器监听zookeeper目录“SERVICE_NODE”的所有变化;所述节点数字为增量数字(比如有五台应用服务器的节点数字分别为1,2,3,4,5,根据需要可以设定排序最前面的“1”对应的应用服务器为主节点),节点数字用于唯一标识一应用服务器。
步骤2、当zookeeper目录“SERVICE_NODE”下的节点数字发生变化时,zookeeper服务广播通知各应用服务器;
步骤3、在各应用服务器收到广播之后,获取zookeeper目录“SERVICE_NODE”下所有节点数字,生成节点列表“SortedSet<String>”,存储于各应用服务器的本地内存;
步骤4、每一应用服务器获取本地存储的节点列表“SortedSet<String>”,从所述节点列表“SortedSet<String>”中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。
较佳的,所述节点列表中存储的节点数字按升序排列存储。
较佳的,所述方法还包括步骤5、当主节点宕机时,删除当前zookeeper目录“SERVICE_NODE”下当前主节点对应的数字,通过zookeeper服务广播通知各应用服务器更新节点列表“SortedSet<String>”,并将新的节点列表“SortedSet<String>”中第一个数字对应的应用服务器作为新的主节点,其他作为从节点,比如,节点数字为“1”的主机宕机时,更新节点列表中的节点数字,从1,2,3,4,5更新为2,3,4,5,此时,选取排列最前的“2”对应的应用服务器作为新的主服务器,若原来为“1”的主服务器维修好从新加入到列表中,则重新为其分配一个节点数字,采用增量数字,即取“6”,加入原节点列表中,得到新的节点列表数据为2,3,4,5,6。
如图2所示,一种基于zookeeper的主从本地定时任务处理系统,需提供zookeeper服务和复数个应用服务器,所述系统包括:
一注册模块,用于在每一应用服务器启动时,在zookeeper目录“SERVICE_NODE”下创建一个节点,并为所述节点分配一个节点数字,存储在对应应用服务器内存中;同时各应用服务器监听zookeeper目录“SERVICE_NODE”的所有变化;所述节点数字为增量数字,节点数字用于唯一标识一应用服务器;
一广播模块,用于当zookeeper目录“SERVICE_NODE”下的节点数字发生变化时,zookeeper服务广播通知各应用服务器;
一节点列表创建模块,用于在各应用服务器收到广播之后,获取zookeeper目录“SERVICE_NODE”下所有节点数字,生成节点列表“SortedSet<String>”,存储于各应用服务器的本地内存;
一任务执行模块,用于每一应用服务器获取本地存储的节点列表“SortedSet<String>”,从所述节点列表“SortedSet<String>”中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。
较佳的,所述节点列表中存储的节点数字按升序排列存储。
较佳的,所述系统还包括一节点列表更新模块,用于当主节点宕机时,删除当前zookeeper目录“SERVICE_NODE”下当前主节点对应的数字,通过zookeeper服务广播通知各应用服务器更新节点列表“SortedSet<String>”,并将新的节点列表“SortedSet<String>”中第一个数字对应的应用服务器作为新的主节点,其他作为从节点,比如,节点数字为“1”的主机宕机时,更新节点列表中的节点数字,从1,2,3,4,5更新为2,3,4,5,此时,选取排列最前的“2”对应的应用服务器作为新的主服务器,若原来为“1”的主服务器维修好从新加入到列表中,则重新为其分配一个节点数字,采用增量数字,即取“6”,加入原节点列表中,得到新的节点列表数据为2,3,4,5,6。
本发明是将正常运行的服务器注册到zookeeper上,通过zookeeper的广播方式,通知所有线上的服务器,每台服务器本地维护存储集群服务器列表,每个本地服务器分配一个数字,通过本地判断数字排序最前的为主服务器,其他为从服务器,当服务器发生宕机时,zookeeper会通知服务器更新服务器列表,即使zookeeper宕机,也不影响主从服务器的正常运行。本发明可在不影响现有应用的情况下,增加在集群环境的支持,正常情况下主服务器执行定时任务,从服务器监听主机状态,当主机异常时,可以自动切换到备机继续执行。采用zookeeper的广播方式来解决动态切换主从的节点,从而实现主从本地定时任务的高效处理,大大降低系统故障问题,避免代码重复执行。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种基于zookeeper的主从本地定时任务处理方法,其特征在于:需提供zookeeper服务和复数个应用服务器,所述方法包括如下步骤:
步骤1、在每一应用服务器启动时,在zookeeper目录下创建一个节点,并为所述节点分配一个节点数字,存储在对应应用服务器内存中;
步骤2、当zookeeper目录下的节点数字发生变化时,zookeeper服务广播通知各应用服务器;
步骤3、在各应用服务器收到广播之后,获取zookeeper目录下所有节点数字,生成节点列表存储于本地内存;
步骤4、每一应用服务器获取本地存储的节点列表,从所述节点列表中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。
2.根据权利要求1所述的一种基于zookeeper的主从本地定时任务处理方法,其特征在于:所述步骤1中的节点数字为增量数字,节点数字用于唯一标识一应用服务器。
3.根据权利要求1所述的一种基于zookeeper的主从本地定时任务处理方法,其特征在于:所述步骤1还包括:各应用服务器监听zookeeper目录的所有变化。
4.根据权利要求1所述的一种基于zookeeper的主从本地定时任务处理方法,其特征在于:所述节点列表中存储的节点数字按升序排列存储。
5.根据权利要求1所述的一种基于zookeeper的主从本地定时任务处理方法,其特征在于:所述方法还包括步骤5、当主节点宕机时,删除当前zookeeper目录下当前主节点对应的数字,通过zookeeper服务广播通知各应用服务器更新节点列表,并将新的节点列表中第一个数字对应的应用服务器作为新的主节点,其他作为从节点。
6.一种基于zookeeper的主从本地定时任务处理系统,其特征在于:需提供zookeeper服务和复数个应用服务器,所述系统包括:
一注册模块,用于在每一应用服务器启动时,在zookeeper目录下创建一个节点,并为所述节点分配一个节点数字,存储在对应应用服务器内存中;
一广播模块,用于当zookeeper目录下的节点数字发生变化时,zookeeper服务广播通知各应用服务器;
一节点列表创建模块,用于在各应用服务器收到广播之后,获取zookeeper目录下所有节点数字,生成节点列表存储于本地内存;
一任务执行模块,用于每一应用服务器获取本地存储的节点列表,从所述节点列表中获取第一个数字与当前应用服务器对应的节点数字进行比较,若一致,则判当前应用服务器为主节点,执行定时任务,否则,判当前任务为从节点,不执行定时任务。
7.根据权利要求6所述的一种基于zookeeper的主从本地定时任务处理系统,其特征在于:所述注册模块中的节点数字为增量数字,节点数字用于唯一标识一应用服务器。
8.根据权利要求6所述的一种基于zookeeper的主从本地定时任务处理系统,其特征在于:所述注册模块还包括:各应用服务器监听zookeeper目录的所有变化。
9.根据权利要求6所述的一种基于zookeeper的主从本地定时任务处理系统,其特征在于:所述节点列表中存储的节点数字按升序排列存储。
10.根据权利要求6所述的一种基于zookeeper的主从本地定时任务处理系统,其特征在于:所述系统还包括一节点列表更新模块,用于当主节点宕机时,删除当前zookeeper目录下当前主节点对应的数字,通过zookeeper服务广播通知各应用服务器更新节点列表,并将新的节点列表中第一个数字对应的应用服务器作为新的主节点,其他作为从节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910496227.2A CN110266779A (zh) | 2019-06-10 | 2019-06-10 | 一种基于zookeeper的主从本地定时任务处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910496227.2A CN110266779A (zh) | 2019-06-10 | 2019-06-10 | 一种基于zookeeper的主从本地定时任务处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110266779A true CN110266779A (zh) | 2019-09-20 |
Family
ID=67917314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910496227.2A Pending CN110266779A (zh) | 2019-06-10 | 2019-06-10 | 一种基于zookeeper的主从本地定时任务处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110266779A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978892A (zh) * | 2022-07-04 | 2022-08-30 | 北京尽微致广信息技术有限公司 | 一种目标节点确定方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
CN103744724A (zh) * | 2014-02-19 | 2014-04-23 | 互联网域名系统北京市工程研究中心有限公司 | 定时任务集群方法及其装置 |
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
CN106712981A (zh) * | 2015-07-23 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种节点变更通知方法及装置 |
CN108038005A (zh) * | 2017-12-28 | 2018-05-15 | 广东蜂助手网络技术股份有限公司 | 基于zookeeper的共享资源访问方法、客户端、服务端、系统 |
CN108132833A (zh) * | 2017-12-08 | 2018-06-08 | 广州视源电子科技股份有限公司 | 一种基于zookeeper技术的分布式定时任务调度方法和装置 |
-
2019
- 2019-06-10 CN CN201910496227.2A patent/CN110266779A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
CN103744724A (zh) * | 2014-02-19 | 2014-04-23 | 互联网域名系统北京市工程研究中心有限公司 | 定时任务集群方法及其装置 |
CN106712981A (zh) * | 2015-07-23 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种节点变更通知方法及装置 |
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
CN108132833A (zh) * | 2017-12-08 | 2018-06-08 | 广州视源电子科技股份有限公司 | 一种基于zookeeper技术的分布式定时任务调度方法和装置 |
CN108038005A (zh) * | 2017-12-28 | 2018-05-15 | 广东蜂助手网络技术股份有限公司 | 基于zookeeper的共享资源访问方法、客户端、服务端、系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978892A (zh) * | 2022-07-04 | 2022-08-30 | 北京尽微致广信息技术有限公司 | 一种目标节点确定方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1190733C (zh) | 数据管理应用程序的故障恢复方法和系统 | |
CN104915260A (zh) | 一种Hadoop集群管理任务的分发方法和系统 | |
CN111371599A (zh) | 一种基于etcd的集群容灾管理系统 | |
CN106101212A (zh) | 云平台下的大数据访问方法 | |
CN112667383A (zh) | 一种任务执行及调度方法、系统、装置、计算设备及介质 | |
CN101621404A (zh) | 一种故障分层处理方法和系统 | |
CN110266779A (zh) | 一种基于zookeeper的主从本地定时任务处理方法及系统 | |
JP2740105B2 (ja) | 分散データベース制御方法 | |
US20160164719A1 (en) | Fault tolerance method for distributed stream processing system | |
CN1147649A (zh) | 电子转换系统中检验处理机状况的分布处理法 | |
US20030182416A1 (en) | Computer monitoring system, computer monitoring method and computer monitoring program | |
Li et al. | Towards robust controller placement in software-defined networks against links failure | |
CN105975276B (zh) | 分布式构建系统及方法 | |
CN109039781B (zh) | 一种网络设备故障诊断方法、执行节点、服务器和系统 | |
CN112035579A (zh) | 图管理、数据存储、数据查询方法、装置及存储介质 | |
CN110597608B (zh) | 任务处理方法和装置、分布式系统以及存储介质 | |
CN115421891A (zh) | 一种任务分发方法、装置、设备及介质 | |
CN103970854B (zh) | Sap ecc端与sap bw端之间增量凭证信息同步方法 | |
CN112242919B (zh) | 一种故障文件处理方法及系统 | |
CN113204434B (zh) | 基于k8s的计划任务执行方法、装置及计算机设备 | |
CN112306664B (zh) | 一种服务重启方法、系统、设备以及介质 | |
CN110163374A (zh) | 一种基于Word通用配置的故障诊断推理系统 | |
Khalilipour et al. | Automatic Re-modularization of Clustered Codes Considering Invocation Types | |
CN116521453B (zh) | 基于整数线性规划模型ilp的云集群容灾方法及相关设备 | |
Li et al. | Large-scale software unit testing on the grid. |
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: 20190920 |