CN112379979A - 一种应用于税控服务的线程超时监控方法 - Google Patents
一种应用于税控服务的线程超时监控方法 Download PDFInfo
- Publication number
- CN112379979A CN112379979A CN202011166715.6A CN202011166715A CN112379979A CN 112379979 A CN112379979 A CN 112379979A CN 202011166715 A CN202011166715 A CN 202011166715A CN 112379979 A CN112379979 A CN 112379979A
- Authority
- CN
- China
- Prior art keywords
- thread
- timeout
- monitoring
- event
- overtime
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000007246 mechanism Effects 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
- G06Q30/00—Commerce
- G06Q30/04—Billing or invoicing
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/123—Tax preparation or submission
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种应用于税控服务的线程超时监控方法,该方法包括步骤:定义目标线程的超时事件;定义目标线程的回调函数,所述回调函数用于在被调用时启动预定的超时事件处理机制;监听所述超时事件是否发生,若是,调用所述回调函数。本发明的应用于税控服务的线程超时监控方法,采用监听的方式判断是否有超时事件发生。与现有应用于税控服务的线程超时监控方法采用遍历的方式判断是否有超时事件发生相比,本发明的应用于税控服务的线程超时监控方法具有更高的效率,且占用的系统资源更少。
Description
技术领域
本发明属于线程监控领域,更具体地,涉及一种应用于税控服务的线程超时监控方法。
背景技术
税控服务器,又称税控盘,是按照国家税务总局的“税控盘技术规范”进行研制的税控装置。税控服务器采用税控专用算法,可以实现税控码计算,发票电子信息管理,发票明细安全存储和实时时钟的功能。具体地,税控服务器能够在发票开票软件的配合下实现发票税控功能的电子装置,能满足税务机关对发票的管理要求,保证发票税控数据的正确生成、可靠存储、防止篡改。
线程在运行过程中,可能由于死锁、网络阻塞和死循环等原因长时间阻塞在某个位置,而无法继续运行。如果没有外在干预,很可能会一直停留在某个位置,甚至造成其它线程无法获取全局资源、cpu占资源浪费和进程无响应等问题。
为了保证税控服务的稳定性和可靠性,在现有税控服务的过程中,通常采用线程监控的方式对税控服务器的超时线程进行监控并对超时线程采取相应的处理措施。然而,现有的线程监控方法通常采用遍历记录实体的方式来判断处理时间是否超时,这种线程监控方法不仅效率低而且占用系统资源较多。
发明内容
本发明的目的在于解决现有应用于税控服务的线程超时监控方法的效率低和占用系统资源多的问题。
为了实现上述目的,本发明提供一种应用于税控服务的线程超时监控方法,该方法包括:
定义目标线程的超时事件;
定义目标线程的回调函数,所述回调函数用于在被调用时启动预定的超时事件处理机制;
监听所述超时事件是否发生,若是,调用所述回调函数。
作为优选的是,所述定义目标线程的超时事件,具体为:
定义事件的类型,以及每类事件的超时阈值;
当所述事件的持续时间达到其对应的超时阈值时,被认定为超时事件。
作为优选的是,所述超时事件处理机制为重启线程、重启进程和/或重启系统。
作为优选的是,在所述定义目标线程的回调函数之后,还包括:
定义所述回调函数的函数指针。
作为优选的是,所述调用所述回调函数基于调用所述函数指针实现。
作为优选的是,所述超时事件的监听基于预创建的监控线程实现;
所述监控线程的启动基于类的构造函数实现,具体为:
启动待添加超时事件的监控线程;
在所述待添加超时事件的监控线程添加所述超时事件。
作为优选的是,在所述调用所述回调函数之后,还包括:
判断是否存在其他超时事件监听任务,若是,监听所述其他超时事件是否发生。
作为优选的是,在所述调用所述回调函数之后,还包括:
判断是否存在其他超时事件监听任务,若否,结束所述监控线程。
作为优选的是,所述结束所述监控线程基于类的析构函数实现,具体为:
删除添加到所述监控线程的超时事件;
释放监听所述超时事件占有的资源;
关闭所述监控线程。
作为优选的是,所述应用于税控服务的线程超时监控方法还包括:
在所述监听所述超时事件是否发生的过程中,响应于超时事件设置指令,删除所述监控线程中的已有超时事件和/或在所述监控线程中添加新定义的超时事件;
执行所述超时事件设置指令后,所述监控线程中至少保留有一个超时事件。
本发明的有益效果在于:
本发明的应用于税控服务的线程超时监控方法,先定义目标线程的超时事件和回调函数,再采用监听的方式判断是否有超时事件发生。当监听到有超时事件发生时,调用回调函数,以启动预定的超时事件处理机制,进而对超时事件进行相应的处理。
本发明的应用于税控服务的线程超时监控方法,采用监听的方式判断是否有超时事件发生。与现有应用于税控服务的线程超时监控方法采用遍历的方式判断是否有超时事件发生相比,本发明的应用于税控服务的线程超时监控方法具有更高的效率,且占用的系统资源更少。
本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的实施例的应用于税控服务的线程超时监控方法的实现流程图。
图2示出了根据本发明的实施例的在类的构造函数中启动监控线程并添加超时事件的流程图。
图3示出了根据本发明的实施例的在类的析构函数中删除超时事件的流程图。
图4示出了根据本发明的实施例的监控线程的主流程图。
具体实施方式
下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
实施例:图1示出了本实施例的应用于税控服务的线程超时监控方法的实现流程图。参照图1,本实施例的应用于税控服务的线程超时监控方法包括:
步骤S100、定义目标线程的超时事件;
步骤S200、定义目标线程的回调函数,所述回调函数用于在被调用时启动预定的超时事件处理机制;
步骤S300、监听所述超时事件是否发生,若是,执行步骤S400;
步骤S400、调用所述回调函数。
本实施例的步骤S100,具体为:
定义事件的类型,以及每类事件的超时阈值;
当所述事件的持续时间达到其对应的超时阈值时,被认定为超时事件。
本实施例中,所述超时事件处理机制为重启线程、重启进程和重启系统。
本实施例的应用于税控服务的线程超时监控方法,在步骤S200之后,还包括:
定义所述回调函数的函数指针。
本实施例的步骤S400基于调用所述函数指针实现。
本实施例中,所述超时事件的监听基于预创建的监控线程实现;
所述监控线程的启动基于类的构造函数实现,具体为:
启动待添加超时事件的监控线程;
在所述待添加超时事件的监控线程添加所述超时事件。
本实施例的应用于税控服务的线程超时监控方法,在步骤S400之后,还包括:
判断是否存在超时事件监听任务;
若是,返回执行步骤S300;
若否,结束所述监控线程。
本实施例中,所述结束所述监控线程基于类的析构函数实现,具体为:
删除添加到所述监控线程的超时事件;
释放监听所述超时事件占有的资源;
关闭所述监控线程。
本实施例的应用于税控服务的线程超时监控方法还包括:
在所述监听所述超时事件是否发生的过程中,响应于超时事件设置指令,删除所述监控线程中的已有超时事件和/或在所述监控线程中添加新定义的超时事件;
执行所述超时事件设置指令后,所述监控线程中至少保留有一个超时事件。
以下对本实施例的应用于税控服务的线程超时监控方法进行更为详细的说明:
本实施例的应用于税控服务的线程超时监控方法,在类的构造函数中启动监控线程(如果已启动,则不再重复启动)并添加超时事件,设置超时时长,在对应的析构函数中删除超时事件并释放资源。在所有超时事件都已结束或被删除后监控线程自动退出。
图2示出了本实施例的在类的构造函数中启动监控线程并添加超时事件的流程图。其中,发生超时事件所执行的回调函数需要提前设置,在达到超时时长时自动执行。回调函数可以根据实际需求灵活设置,比如重启系统、重启进程、重启线程等。
图3示出了本实施例的在类的析构函数中删除超时事件的流程图。其中,所删除的超时事件为对应的在构造函数中添加的超时事件,并不会影响别的超时事件。同时,在删除超时事件后,会释放构造函数中申请的资源。
图4示出了本实施例的监控线程的主流程图。在构造函数中添加超时事件后就一直在等待超时事件发生,超时事件发生后则执行对应超时回调函数。回调函数执行完以后会判断是否还有正在监听的超时事件,没有则退出进程,有则继续等待超时事件发生。
具体示例:
在步骤S100中,定义的目标线程的超时事件包括第一超时事件、第二超时事件和第三超时事件;
在步骤S200中,定义的目标线程的回调函数所对应的超时事件处理机制包括重启线程、重启进程和重启系统,三种超时事件处理机制分别对应第一超时事件、第二超时事件和第三超时事件;
之后,进入监听第一超时事件、第二超时事件和第三超时事件是否发生的步骤;
当监听到第一超时事件发生时,调用回调函数,启动相应的超时事件处理机制,即重启线程;
执行完第一超时事件的超时事件处理机制后,判断是否还存在其他正在监听的超时事件,由于还存在正在监听的第二超时事件和第三超时事件,需要返回监听的步骤;与此同时,在监控线程中删除第一超时事件,并释放所占用的系统资源;
当监听到第二超时事件发生时,调用回调函数,启动相应的超时事件处理机制,即重启进程;
执行完第二超时事件的超时事件处理机制后,判断是否还存在其他正在监听的超时事件,由于还存在正在监听的第三超时事件,需要返回监听的步骤;与此同时,在监控线程中删除第二超时事件,并释放所占用的系统资源;
当监听到第三超时事件发生时,调用回调函数,启动相应的超时事件处理机制,即重启系统;
执行完第三超时事件的超时事件处理机制后,判断是否还存在其他正在监听的超时事件,此时已经不存在其他正在监听的超时事件,进入结束监控线程的流程:
结束监控线程的流程为:
在监控线程中删除第三超时事件,
释放所占用的系统资源;
退出进程。
本实施例的应用于税控服务的线程超时监控方法,在构造函数中启动监控线程并添加超时事件,在析构函数中删除超时事件。本实施例的应用于税控服务的线程超时监控方法,既在类对象作用域内有效,又可在堆上定义变量,从而实现跨函数公用同一个超时事件,使用方便。除此之外,在采用本实施例的应用于税控服务的线程超时监控方法时,声明临时变量即可实现监控,使用简单。
本实施例的应用于税控服务的线程超时监控方法简单易用,其所采用的监控线程是一个独立的线程,能够根据需要自动启动和退出。本实施例的应用于税控服务的线程超时监控方法采用监听的方式判断是否有超时事件发生,效率较高,占用的系统资源少,能够有效地解决线程长时间阻塞以至于进程无响应的问题。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
Claims (10)
1.一种应用于税控服务的线程超时监控方法,其特征在于,包括:
定义目标线程的超时事件;
定义目标线程的回调函数,所述回调函数用于在被调用时启动预定的超时事件处理机制;
监听所述超时事件是否发生,若是,调用所述回调函数。
2.根据权利要求1所述的线程超时监控方法,其特征在于,所述定义目标线程的超时事件,具体为:
定义事件的类型,以及每类事件的超时阈值;
当所述事件的持续时间达到其对应的超时阈值时,被认定为超时事件。
3.根据权利要求1所述的线程超时监控方法,其特征在于,所述超时事件处理机制为重启线程、重启进程和/或重启系统。
4.根据权利要求1所述的线程超时监控方法,其特征在于,在所述定义目标线程的回调函数之后,还包括:
定义所述回调函数的函数指针。
5.根据权利要求4所述的线程超时监控方法,其特征在于,所述调用所述回调函数基于调用所述函数指针实现。
6.根据权利要求1所述的线程超时监控方法,其特征在于,所述超时事件的监听基于预创建的监控线程实现;
所述监控线程的启动基于类的构造函数实现,具体为:
启动待添加超时事件的监控线程;
在所述待添加超时事件的监控线程添加所述超时事件。
7.根据权利要求6所述的线程超时监控方法,其特征在于,在所述调用所述回调函数之后,还包括:
判断是否存在其他超时事件监听任务,若是,监听所述其他超时事件是否发生。
8.根据权利要求7所述的线程超时监控方法,其特征在于,在所述调用所述回调函数之后,还包括:
判断是否存在其他超时事件监听任务,若否,结束所述监控线程。
9.根据权利要求8所述的线程超时监控方法,其特征在于,所述结束所述监控线程基于类的析构函数实现,具体为:
删除添加到所述监控线程的超时事件;
释放监听所述超时事件占有的资源;
关闭所述监控线程。
10.根据权利要求9所述的线程超时监控方法,其特征在于,还包括:在所述监听所述超时事件是否发生的过程中,响应于超时事件设置指令,删除所述监控线程中的已有超时事件和/或在所述监控线程中添加新定义的超时事件;
执行所述超时事件设置指令后,所述监控线程中至少保留有一个超时事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011166715.6A CN112379979A (zh) | 2020-10-27 | 2020-10-27 | 一种应用于税控服务的线程超时监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011166715.6A CN112379979A (zh) | 2020-10-27 | 2020-10-27 | 一种应用于税控服务的线程超时监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112379979A true CN112379979A (zh) | 2021-02-19 |
Family
ID=74577759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011166715.6A Pending CN112379979A (zh) | 2020-10-27 | 2020-10-27 | 一种应用于税控服务的线程超时监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112379979A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1605987A (zh) * | 2004-11-17 | 2005-04-13 | 中兴通讯股份有限公司 | 一种多线程系统中实现实时监控各线程状态的方法 |
CN104360904A (zh) * | 2014-10-16 | 2015-02-18 | 四川长虹电器股份有限公司 | 基于事件总线的模块间消息传递机制 |
CN106339217A (zh) * | 2016-08-18 | 2017-01-18 | 福建天泉教育科技有限公司 | 基于Unity的事件管理方法及系统 |
CN107589986A (zh) * | 2017-07-28 | 2018-01-16 | 北京北信源软件股份有限公司 | 一种数据处理超时的通用处理方法与装置 |
CN108228330A (zh) * | 2018-02-06 | 2018-06-29 | 北京安博通科技股份有限公司 | 一种串行化的多进程任务调度方法和装置 |
-
2020
- 2020-10-27 CN CN202011166715.6A patent/CN112379979A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1605987A (zh) * | 2004-11-17 | 2005-04-13 | 中兴通讯股份有限公司 | 一种多线程系统中实现实时监控各线程状态的方法 |
CN104360904A (zh) * | 2014-10-16 | 2015-02-18 | 四川长虹电器股份有限公司 | 基于事件总线的模块间消息传递机制 |
CN106339217A (zh) * | 2016-08-18 | 2017-01-18 | 福建天泉教育科技有限公司 | 基于Unity的事件管理方法及系统 |
CN107589986A (zh) * | 2017-07-28 | 2018-01-16 | 北京北信源软件股份有限公司 | 一种数据处理超时的通用处理方法与装置 |
CN108228330A (zh) * | 2018-02-06 | 2018-06-29 | 北京安博通科技股份有限公司 | 一种串行化的多进程任务调度方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7386859B2 (en) | Method and system for effective management of client and server processes | |
CN108595282A (zh) | 一种高并发消息队列的实现方法 | |
US9934105B2 (en) | Fault tolerance for complex distributed computing operations | |
US20230025917A1 (en) | Task scheduling method and apparatus | |
US9448928B2 (en) | System and method for two-tier adaptive heap management in a virtual machine environment | |
US7685575B1 (en) | Method and apparatus for analyzing an application | |
US7886297B2 (en) | Program control process for an information processing apparatus | |
CN106681811A (zh) | 基于线程池的多线程调度方法及装置 | |
CN109471711B (zh) | 一种任务处理的方法及装置 | |
CN101883003A (zh) | 一种计算机操作系统强制运行方法 | |
CN101227630A (zh) | 一种基于窗口平台的应用程序监控方法 | |
CN109558244A (zh) | 垃圾信息回收方法、装置、设备及计算机可读存储介质 | |
US6519637B1 (en) | Method and apparatus for managing a memory shortage situation in a data processing system | |
CN111124761B (zh) | 一种设备重启方法、装置、设备及介质 | |
WO2022095862A1 (zh) | 调整线程优先级的方法、终端及计算机可读存储介质 | |
CN101082870A (zh) | 一种限制shell脚本并行执行的方法 | |
JP2011070364A (ja) | 運用管理サーバ、ロールバック実行方法およびロールバック実行プログラム | |
CN112612635B (zh) | 一种应用程序多层级保护方法 | |
CN112379979A (zh) | 一种应用于税控服务的线程超时监控方法 | |
CN107305507B (zh) | 死锁控制方法和装置 | |
WO2021139113A1 (zh) | 交易信息的加签方法、装置、计算机设备和存储介质 | |
WO2008157455A2 (en) | Notifying user mode scheduler of blocking events | |
CN113867954A (zh) | 一种基于线程池与对象池的线程处理方法、系统及介质 | |
CN115858499A (zh) | 一种数据库分区处理方法、装置、计算机设备和存储介质 | |
JP3839259B2 (ja) | マルチスレッド制御方法、マルチスレッド制御装置、記録媒体、及びプログラム |
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 |