CN115147168A - 一种电子发票开具任务处理方法、装置及系统 - Google Patents
一种电子发票开具任务处理方法、装置及系统 Download PDFInfo
- Publication number
- CN115147168A CN115147168A CN202210699384.5A CN202210699384A CN115147168A CN 115147168 A CN115147168 A CN 115147168A CN 202210699384 A CN202210699384 A CN 202210699384A CN 115147168 A CN115147168 A CN 115147168A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- opening
- queue
- task 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.)
- Granted
Links
Images
Classifications
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种电子发票开具任务处理方法、装置及系统,该方法包括:在当前预设周期中,获取开票数据库内的若干个开具任务;根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列;将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。采用本发明实施例,可以按数据队列的方式处理电子发票开具任务;同时,未进入队列的开具任务并不会丢失,而是存储在开票数据库中,解决了因未进入队列造成的任务遗漏问题;通过定时从数据库中提取开具任务,使原来无法并行处理的异步任务可以实现数据队列的并行处理,提高了工作效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种电子发票开具任务处理方法、装置及系统。
背景技术
目前,电子发票开具的过程一般为,通过将可扩展标记语言(xml)格式下的原始发票数据渲染为PDF格式或OFD格式的版式文档,并采用CA认证的方式对版式文档进行加密,这一过程会占用大量的计算机资源。现有技术主要通过定时任务的方式,从数据库中提取原始发票数据并进行渲染和加密处理;但定时任务的方式在处理多应用获取原始发票数据时会因获取id重复,导致任务重复执行,难以实现并行高效处理;而采用队列任务的方式,又会使未被安排进队列的任务被遗漏。
发明内容
本发明提供了一种电子发票开具任务处理方法、装置及系统,以解决现有技术在处理电子发票开具任务时无法同时满足并行处理和避免任务遗漏的技术问题。
为了解决上述技术问题,本发明实施例提供了一种电子发票开具任务处理方法,包括:
在当前预设周期中,获取开票数据库内的若干个开具任务;其中,所述若干个开具任务包括:由第一应用上传的第一开具任务和由第二应用上传的第二开具任务;所述第一开具任务包括:在当前预设周期中上传的开具任务、以及在上一预设周期中上传且未加入任务队列的开具任务;所述第一应用为能直接上传开具任务且能将开具任务上传至所述开票数据库的应用;所述第二应用为只能将开具任务上传至所述开票数据库的应用;
根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列;
将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。
本发明通过接收第一应用上传的具有优先级的第一开具任务,可以按数据队列的方式处理电子发票开具任务;同时,第一应用上传但未进入队列的开具任务并不会丢失,而是同第二应用上传的开具任务一并存储在开票数据库中,解决了因未进入队列造成的任务遗漏问题;按预设的周期从数据库中提取开具任务,使第二应用的电子发票开具任务可以实现数据队列的并行处理,提高了工作效率。
进一步地,所述根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列,具体为:
判断优先级较高的所述若干个开具任务是否满足第一预设数量;
当优先级较高的所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列;
当优先级较高的所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列。
本发明优先将优先级较高的开具任务放入任务队列,保证任务队列按优先级执行队列中的任务;同时,根据第一预设数量处理优先级较高的开具任务,能保证优先级较低的开具任务能够足量得到处理,提高了电子发票开具任务的处理效率。
在所述当优先级较高的所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列,包括:
判断优先级较低的所述若干个开具任务是否满足第二预设数量;
当优先级较低的所述若干个开具任务满足第二预设数量时,选取第二预设数量的所述优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列;
当优先级较低的所述若干个开具任务满足第二预设数量时,将全部所述优先级较低的所述若干个开具任务放入所述任务队列。
进一步地,在所述当优先级较低的所述若干个开具任务满足第二预设数量时,将全部所述优先级较低的所述若干个开具任务放入所述任务队列之后,包括:
判断剩余的优先级较高的所述若干个开具任务是否能将所述任务队列填满;
当优先级较高的所述若干个开具任务能将所述任务队列填满时,将所述剩余的优先级较高的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列;
当优先级较高的所述若干个开具任务不能将所述任务队列填满时,将全部剩余的优先级较高的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
进一步地,在所述当优先级较高的所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列之后,包括:
判断剩余的优先级较低的所述若干个开具任务是否能将所述任务队列填满;
当剩余的优先级较低的所述若干个开具任务能将所述任务队列填满时,将所述剩余的优先级较低的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列;
当剩余的优先级较低的所述若干个开具任务不能将所述任务队列填满时,将全部剩余的优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
本发明通过根据优先级设置任务队列,在保证优先级较高的任务和优先级较低的任务按预设数量或比例放入任务队列的同时,还根据是否达到第一预设数量或第二预设数量以及队列是否填满,灵活地分配不同优先级的任务,使得并行处理的资源利用效率得到提高。
进一步地,所述将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票,具体为:
接收所述任务处理应用根据预设的效率规则发送的工作请求;
在接收到所述工作请求后,将所述待执行的任务队列发送至所述任务处理应用,以使所述任务处理应用根据待执行的任务队列中的电子发票开具任务渲染出若干版式文档,并对所述若干版式文档进行加密,得到所述若干电子发票。
进一步地,所述预设的效率规则,包括:
当所述任务处理应用没有电子发票开具任务时,向调度服务发送工作请求,以获得待执行的任务队列;
判断连续预设次数接收的待执行的任务队列是否为空的待执行任务队列;
当连续预设次数接收的待执行的任务队列为空的待执行任务队列时,在暂停预设的时间长度后,再次向所述调度服务器发送工作请求;
当连续预设次数接收的待执行的任务队列不为空的待执行任务队列时,当所述任务处理应用处理完待执行的任务队列时,继续向调度服务器发送工作请求。
本发明通过预设的效率规则,使待执行任务队列得到处理的同时,保证在没有新的电子发票开具任务的情况下,避免频繁向任务处理应用返回空的待执行任务队列,避免了系统资源浪费的问题。
另一方面,本发明实施例提供了一种电子发票开具任务处理装置,包括:数据获取模块、队列设置模块和任务执行模块;
所述数据获取模块用于在当前预设周期中,获取开票数据库内的若干个开具任务;其中,所述若干个开具任务包括:由第一应用上传的第一开具任务和由第二应用上传的第二开具任务;所述第一开具任务包括:在当前预设周期中上传的开具任务、以及在上一预设周期中上传且未加入任务队列的开具任务;所述第一应用为能直接上传开具任务且能将开具任务上传至所述开票数据库的应用;所述第二应用为只能将开具任务上传至所述开票数据库的应用;
所述队列设置模块用于根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列;
所述任务执行模块用于将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。
进一步地,所述队列设置模块,包括:第一判断单元和第一设置单元;
所述第一判断单元用于判断优先级较高的所述若干个开具任务是否满足第一预设数量;
所述第一设置单元用于当所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列;以及用于当所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列。
另一方面,本发明实施例提供了一种电子发票开具任务处理系统,包括:调度服务器、客户端和开票数据服务器;
所述调度服务器用于执行任意一项如本发明实施例所述的电子发票开具任务处理方法;
所述客户端用于根据第一应用将第一开具任务上传至调度服务器或上传至开票数据库,或者,根据第二应用将第二开具任务上传至所述开票数据库;
所述开票数据服务器用于存储第一应用上传的第一开具任务和第二应用上传的第二开具任务,以使所述调度服务器获得若干个开具任务;其中,所述开票数据服务器上装有所述开票数据库。
本发明通过接收第一应用上传的具有优先级的第一开具任务,可以按数据队列的方式处理电子发票开具任务;同时,第一应用上传但未进入队列的开具任务并不会丢失,而是同第二应用上传的开具任务一并存储在开票数据库中,解决了因未进入队列造成的任务遗漏问题;按预设的周期从数据库中提取开具任务,使第二应用的电子发票开具任务可以实现数据队列的并行处理,提高了工作效率。
附图说明
图1是本发明提供的电子发票开具任务处理方法的一种实施例的流程示意图;
图2是本发明提供的任务队列设置方法的一种实施例的流程示意图;
图3是本发明提供的电子发票开具任务处理装置的一种实施例的结构示意图;
图4是本发明提供的电子发票开具任务处理装置的另一种实施例的结构示意图;
图5是本发明提供的电子发票开具任务处理系统的一种实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参照图1,是本发明提供的电子发票开具任务处理方法的一种实施例的流程示意图,其主要包括步骤101至103,具体如下:
步骤101:在当前预设周期中,获取开票数据库内的若干个开具任务;其中,所述若干个开具任务包括:由第一应用上传的第一开具任务和由第二应用上传的第二开具任务;所述第一开具任务包括:在当前预设周期中上传的开具任务、以及在上一预设周期中上传且未加入任务队列的开具任务;所述第一应用为能直接上传开具任务且能将开具任务上传至所述开票数据库的应用;所述第二应用为只能将开具任务上传至所述开票数据库的应用。
在本实施例中,第一应用既可以直接上传第一开具任务进行任务队列的并行处理,也可以将第一开具任务上传至开票数据库中,保证未进入队列的电子发票开具任务能够在之后的预设周期中,通过轮询的方式被重新放入队列进行处理;在从开票数据库中获取若干个开票任务时,可以按照上传至开票数据库的时间顺序对第一开具任务或第二开具任务进行提取。
步骤102:根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列。
在本实施例中,第二应用只能将第二开具任务上传至开票数据库中,通过向开票数据库获取所述第二开具任务,可以实现将第二开具任务与第一开具任务一并放入任务队列得到并行处理;此外,当获取的开具任务没有被标记优先级时,则在获取没有优先级的开具任务的同时,为没有优先级的开具任务添加优先级。
步骤103:将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。
在本实施例中,设置好的待处理的任务队列,可以在响应下游的任务处理应用的工作请求时,发送至下游进行任务处理;在任务处理应用获得待处理的任务队列后,按队列中的开具任务的顺序进行处理,将发票的原始数据处理成办事文档并进行加密处理;其中,开具任务的顺序按照优先级的高低进行设置。
在本实施例中,所述将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票,具体为:接收所述任务处理应用根据预设的效率规则发送的工作请求;在接收到所述工作请求后,将所述待执行的任务队列发送至所述任务处理应用,以使所述任务处理应用根据待执行的任务队列中的若干个开具任务渲染出若干版式文档,并对所述若干版式文档进行加密,得到所述若干个电子发票。
在本实施例中,所述预设的效率规则,包括:当所述任务处理应用没有电子发票开具任务时,向调度服务器发送工作请求,以获得待执行的任务队列;判断连续预设次数接收的待执行的任务队列是否为空的待执行任务队列;当连续预设次数接收的待执行的任务队列为空的待执行任务队列时,在暂停预设的时间长度后,再次向所述调度服务器发送工作请求;当连续预设次数接收的待执行的任务队列不为空的待执行任务队列时,当所述任务处理应用处理完待执行的任务队列时,继续向调度服务器发送工作请求。
本发明通过接收第一应用上传的具有优先级的第一开具任务,可以按数据队列的方式处理电子发票开具任务;同时,第一应用上传但未进入队列的开具任务并不会丢失,而是同第二应用上传的开具任务一并存储在开票数据库中,解决了因未进入队列造成的任务遗漏问题;按预设的周期从数据库中提取开具任务,使第二应用的电子发票开具任务可以实现数据队列的并行处理,提高了工作效率。
此外,本发明还通过预设的效率规则,使待执行任务队列得到处理的同时,保证在没有新的电子发票开具任务的情况下,避免频繁向任务处理应用返回空的待执行任务队列,避免了系统资源浪费的问题。
请参照图2,是本发明提供的任务队列设置方法的一种实施例的流程示意图,其主要包括步骤201至212,具体如下:
步骤201:判断优先级较高的所述若干个开具任务是否满足第一预设数量;当优先级较高的所述若干个开具任务满足第一预设数量时,执行步骤202;当优先级较高的所述若干个开具任务不满足第一预设数量时,执行步骤203。
步骤202:选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列。
步骤203:将全部所述优先级较高的所述若干个开具任务放入所述任务队列。
在本实施例中,按照优先级从高到低的顺序对若干个开具任务排序放入任务队列;保证优先级较高的任务能够最先被执行;在设置相同优先级的开具任务时,可按照各个开具任务上传的时间顺序,有限选取更早上传的开具任务放入任务队列。
本发明优先将优先级较高的开具任务放入任务队列,保证任务队列按优先级执行队列中的任务;同时,根据第一预设数量处理优先级较高的开具任务,能保证优先级较低的开具任务能够足量得到处理,提高了电子发票开具任务的处理效率。
步骤204:判断优先级较低的所述若干个开具任务是否满足第二预设数量;当优先级较低的所述若干个开具任务满足第二预设数量时,执行步骤205;当优先级较低的所述若干个开具任务满足第二预设数量时,执行步骤206。
步骤205:选取第二预设数量的所述优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
步骤206:将全部所述优先级较低的所述若干个开具任务放入所述任务队列。
在本实施例中,当优先级较低的开具任务数量充足时,则直接选取第二预设数量的开具任务填满任务队列。
步骤207:判断剩余的优先级较高的所述若干个开具任务是否能将所述任务队列填满;当优先级较高的所述若干个开具任务能将所述任务队列填满时,执行步骤208;当优先级较高的所述若干个开具任务不能将所述任务队列填满时,执行步骤209。
步骤208:将所述剩余的优先级较高的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列。
步骤209:将全部剩余的优先级较高的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
在本实施例中,如果优先级较低的开具任务数量不足时,则用优先级较高的开具任务填满任务队列。
步骤210:判断剩余的优先级较低的所述若干个开具任务是否能将所述任务队列填满;当剩余的优先级较低的所述若干个开具任务能将所述任务队列填满时,执行步骤211;当剩余的优先级较低的所述若干个开具任务不能将所述任务队列填满时,执行步骤212。
步骤211:将所述剩余的优先级较低的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列。
步骤212:将全部剩余的优先级较高的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
在本实施例中,当优先级较高的开具任务不足时,则选取优先级较低的填满任务队列。
本发明通过根据优先级设置任务队列,在保证优先级较高的任务和优先级较低的任务按预设数量或比例放入任务队列的同时,还根据是否达到第一预设数量或第二预设数量以及队列是否填满,灵活地分配不同优先级的任务,使得并行处理的资源利用效率得到提高。
请参照图3,是本发明提供的电子发票开具任务处理装置的一种实施例的结构示意图,其主要包括:数据获取模块301、队列设置模块302和任务执行模块303。
在本实施例中,数据获取模块301用于在当前预设周期中,获取开票数据库内的若干个开具任务;其中,所述若干个开具任务包括:由第一应用上传的第一开具任务和由第二应用上传的第二开具任务;所述第一开具任务包括:在当前预设周期中上传的开具任务、以及在上一预设周期中上传且未加入任务队列的开具任务;所述第一应用为能直接上传开具任务且能将开具任务上传至所述开票数据库的应用;所述第二应用为只能将开具任务上传至所述开票数据库的应用。
队列设置模块302用于在数据获取模块301获取开票数据库内的若干个开具任务之后,根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列。
任务执行模块303用于在队列设置模块302得到待执行的任务队列之后,将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。
在本发明实施例中,任务执行模块303还包括:任务接收单元和任务执行单元;任务接收单元用于接收所述任务处理应用根据预设的效率规则发送的工作请求;任务执行单元用于在任务接收单元接收所述任务处理应用根据预设的效率规则发送的工作请求之后,将所述待执行的任务队列发送至所述任务处理应用,以使所述任务处理应用根据待执行的任务队列中的若干个开具任务渲染出若干版式文档,并对所述若干版式文档进行加密,得到所述若干个电子发票。
请参照图4,是本发明提供的电子发票开具任务处理装置的另一种实施例的结构示意图。图4与图3的主要区别在于,图4还包括:第一判断单元401、第一设置单元402、第二判断单元403、第二设置单元404、第三判断单元405、第三设置单元406、第四判断单元407和第四设置单元408。
在本实施例中,第一判断单元401用于判断优先级较高的所述若干个开具任务是否满足第一预设数量。
第一设置单元402用于当所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列;以及用于当所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列。
第二判断单元403用于在第一设置单元402选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列之后,判断优先级较低的所述若干个开具任务是否满足第二预设数量。
第二设置单元404用于当优先级较低的所述若干个开具任务满足第二预设数量时,选取第二预设数量的所述优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列;以及用于当优先级较低的所述若干个开具任务满足第二预设数量时,将全部所述优先级较低的所述若干个开具任务放入所述任务队列。
第三判断单元405用于在第二设置单元404将全部所述优先级较低的所述若干个开具任务放入所述任务队列之后,判断剩余的优先级较高的所述若干个开具任务是否能将所述任务队列填满。
第三设置单元406用于当优先级较高的所述若干个开具任务能将所述任务队列填满时,将所述剩余的优先级较高的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列;以及用于当优先级较高的所述若干个开具任务不能将所述任务队列填满时,将全部剩余的优先级较高的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
第四判断单元407用于在第一设置单元402将全部所述优先级较高的所述若干个开具任务放入所述任务队列之后,判断剩余的优先级较低的所述若干个开具任务是否能将所述任务队列填满。
第四设置单元408用于当剩余的优先级较低的所述若干个开具任务能将所述任务队列填满时,将所述剩余的优先级较低的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列;以及用于当剩余的优先级较低的所述若干个开具任务不能将所述任务队列填满时,将全部剩余的优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
请参照图5,是本发明提供的电子发票开具任务处理系统的一种实施例的结构示意图,其主要包括:调度服务器501、客户端502和开票数据服务器503。
在本实施例中,调度服务器501执行本发明实施例中步骤101-103、步骤201-212中任意一项所述的电子发票开具任务处理方法。
客户端502用于根据第一应用将第一开具任务上传至调度服务器或上传至开票数据库,或者,根据第二应用将第二开具任务上传至所述开票数据库。
开票数据服务器503用于存储第一应用上传的第一开具任务和第二应用上传的第二开具任务,以使所述调度服务器获得若干个开具任务;其中,所述开票数据服务器上装有所述开票数据库。
本发明通过接收第一应用上传的第一开具任务,并轮询开票数据库中的第二开具任务以及未进入队列的第一开具任务,并根据各个开具任务的优先级对若干个开具任务进行排序和放入队列;使得原来只能存储于服务器中的异步任务得到并行处理,也使得原来因未进入任务队列而被遗漏的开具任务得到查询,提高了电子发票开具任务的处理效率和资源使用率。此外,本发明还按照优先级对若干开具任务进行排序队列化处理,各个优先级的开具任务被灵活配置,提高了处理效率。此外,通过在下游预设的效率规则,避免了调度服务频繁返回空的待执行的任务队列,避免了系统资源浪费。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种电子发票开具任务处理方法,其特征在于,包括:
在当前预设周期中,获取开票数据库内的若干个开具任务;其中,所述若干个开具任务包括:由第一应用上传的第一开具任务和由第二应用上传的第二开具任务;所述第一开具任务包括:在当前预设周期中上传的开具任务、以及在上一预设周期中上传且未加入任务队列的开具任务;所述第一应用为能直接上传开具任务且能将开具任务上传至所述开票数据库的应用;所述第二应用为只能将开具任务上传至所述开票数据库的应用;
根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列;
将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。
2.如权利要求1所述的一种电子发票开具任务处理方法,其特征在于,所述根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列,具体为:
判断优先级较高的所述若干个开具任务是否满足第一预设数量;
当优先级较高的所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列;
当优先级较高的所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列。
3.如权利要求2所述的一种电子发票开具任务处理方法,其特征在于,在所述当优先级较高的所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列,包括:
判断优先级较低的所述若干个开具任务是否满足第二预设数量;
当优先级较低的所述若干个开具任务满足第二预设数量时,选取第二预设数量的所述优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列;
当优先级较低的所述若干个开具任务满足第二预设数量时,将全部所述优先级较低的所述若干个开具任务放入所述任务队列。
4.如权利要求3所述的一种电子发票开具任务处理方法,其特征在于,在所述当优先级较低的所述若干个开具任务满足第二预设数量时,将全部所述优先级较低的所述若干个开具任务放入所述任务队列之后,包括:
判断剩余的优先级较高的所述若干个开具任务是否能将所述任务队列填满;
当优先级较高的所述若干个开具任务能将所述任务队列填满时,将所述剩余的优先级较高的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列;
当优先级较高的所述若干个开具任务不能将所述任务队列填满时,将全部剩余的优先级较高的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
5.如权利要求2所述的一种电子发票开具任务处理方法,其特征在于,在所述当优先级较高的所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列之后,包括:
判断剩余的优先级较低的所述若干个开具任务是否能将所述任务队列填满;
当剩余的优先级较低的所述若干个开具任务能将所述任务队列填满时,将所述剩余的优先级较低的所述若干个开具任务放入所述任务队列,直至所述任务队列填满,得到所述待执行的任务队列;
当剩余的优先级较低的所述若干个开具任务不能将所述任务队列填满时,将全部剩余的优先级较低的所述若干个开具任务放入所述任务队列,得到所述待执行的任务队列。
6.如权利要求1所述的一种电子发票开具任务处理方法,其特征在于,所述将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票,具体为:
接收所述任务处理应用根据预设的效率规则发送的工作请求;
在接收到所述工作请求后,将所述待执行的任务队列发送至所述任务处理应用,以使所述任务处理应用根据待执行的任务队列中的若干个开具任务渲染出若干版式文档,并对所述若干版式文档进行加密,得到所述若干个电子发票。
7.如权利要求6所述的一种电子发票开具任务处理方法,其特征在于,所述预设的效率规则,包括:
当所述任务处理应用没有电子发票开具任务时,向调度服务器发送工作请求,以获得待执行的任务队列;
判断连续预设次数接收的待执行的任务队列是否为空的待执行任务队列;
当连续预设次数接收的待执行的任务队列为空的待执行任务队列时,在暂停预设的时间长度后,再次向所述调度服务器发送工作请求;
当连续预设次数接收的待执行的任务队列不为空的待执行任务队列时,当所述任务处理应用处理完待执行的任务队列时,继续向调度服务器发送工作请求。
8.一种电子发票开具任务处理装置,其特征在于,包括:数据获取模块、队列设置模块和任务执行模块;
所述数据获取模块用于在当前预设周期中,获取开票数据库内的若干个开具任务;其中,所述若干个开具任务包括:由第一应用上传的第一开具任务和由第二应用上传的第二开具任务;所述第一开具任务包括:在当前预设周期中上传的开具任务、以及在上一预设周期中上传且未加入任务队列的开具任务;所述第一应用为能直接上传开具任务且能将开具任务上传至所述开票数据库的应用;所述第二应用为只能将开具任务上传至所述开票数据库的应用;
所述队列设置模块用于根据所述若干个开具任务各自的优先级,将所述第一开具任务和所述第二开具任务放入任务队列,得到待执行的任务队列;
所述任务执行模块用于将所述待执行的任务队列发送至任务处理应用,以使所述任务处理应用执行版式文档渲染和加密处理,得到若干电子发票。
9.如权利要求8所述的一种电子发票开具任务处理装置,其特征在于,所述队列设置模块,包括:第一判断单元和第一设置单元;
所述第一判断单元用于判断优先级较高的所述若干个开具任务是否满足第一预设数量;
所述第一设置单元用于当所述若干个开具任务满足第一预设数量时,选取第一预设数量的优先级较高的所述若干个开具任务放入所述任务队列;以及用于当所述若干个开具任务不满足第一预设数量时,将全部所述优先级较高的所述若干个开具任务放入所述任务队列。
10.一种电子发票开具任务处理系统,其特征在于,包括:调度服务器、客户端和开票数据服务器;
所述调度服务器用于执行如权利要求1至7任意一项所述的电子发票开具任务处理方法;
所述客户端用于根据第一应用将第一开具任务上传至调度服务器或上传至开票数据库,或者,根据第二应用将第二开具任务上传至所述开票数据库;
所述开票数据服务器用于存储第一应用上传的第一开具任务和第二应用上传的第二开具任务,以使所述调度服务器获得若干个开具任务;其中,所述开票数据服务器上装有所述开票数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210699384.5A CN115147168B (zh) | 2022-06-20 | 2022-06-20 | 一种电子发票开具任务处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210699384.5A CN115147168B (zh) | 2022-06-20 | 2022-06-20 | 一种电子发票开具任务处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115147168A true CN115147168A (zh) | 2022-10-04 |
CN115147168B CN115147168B (zh) | 2023-05-09 |
Family
ID=83407565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210699384.5A Active CN115147168B (zh) | 2022-06-20 | 2022-06-20 | 一种电子发票开具任务处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115147168B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959238A (zh) * | 2016-06-28 | 2016-09-21 | 深圳市彬讯科技有限公司 | 一种基于消息队列多优先级渲染资源的调度方法及系统 |
CN106530021A (zh) * | 2016-10-31 | 2017-03-22 | 青岛瑞宏科技有限公司 | 一种电子发票开票系统装置 |
CN109559178A (zh) * | 2018-10-19 | 2019-04-02 | 中国平安人寿保险股份有限公司 | 电子发票批量开票方法、电子装置及可读存储介质 |
CN110399210A (zh) * | 2019-07-30 | 2019-11-01 | 中国联合网络通信集团有限公司 | 基于边缘云的任务调度方法及装置 |
CN111210286A (zh) * | 2019-12-26 | 2020-05-29 | 大象慧云信息技术有限公司 | 一种基于税控服务器的发票高效开具方法及系统 |
CN112346829A (zh) * | 2019-08-07 | 2021-02-09 | 上海云盾信息技术有限公司 | 一种用于任务调度的方法及设备 |
CN112395107A (zh) * | 2020-11-17 | 2021-02-23 | 航天信息股份有限公司 | 税控设备控制的方法、装置、存储介质及电子设备 |
-
2022
- 2022-06-20 CN CN202210699384.5A patent/CN115147168B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959238A (zh) * | 2016-06-28 | 2016-09-21 | 深圳市彬讯科技有限公司 | 一种基于消息队列多优先级渲染资源的调度方法及系统 |
CN106530021A (zh) * | 2016-10-31 | 2017-03-22 | 青岛瑞宏科技有限公司 | 一种电子发票开票系统装置 |
CN109559178A (zh) * | 2018-10-19 | 2019-04-02 | 中国平安人寿保险股份有限公司 | 电子发票批量开票方法、电子装置及可读存储介质 |
CN110399210A (zh) * | 2019-07-30 | 2019-11-01 | 中国联合网络通信集团有限公司 | 基于边缘云的任务调度方法及装置 |
CN112346829A (zh) * | 2019-08-07 | 2021-02-09 | 上海云盾信息技术有限公司 | 一种用于任务调度的方法及设备 |
CN111210286A (zh) * | 2019-12-26 | 2020-05-29 | 大象慧云信息技术有限公司 | 一种基于税控服务器的发票高效开具方法及系统 |
CN112395107A (zh) * | 2020-11-17 | 2021-02-23 | 航天信息股份有限公司 | 税控设备控制的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115147168B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343941B (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
CN108536532B (zh) | 一种批量任务处理方法及系统 | |
CN109756508B (zh) | 基于多协议接入区块链网络的消息代理方法及相关设备 | |
CN110427256B (zh) | 基于优先级的作业调度优化方法、设备、存储介质及装置 | |
CN107968836A (zh) | 一种任务分发方法及装置 | |
CN105589783A (zh) | 应用程序卡顿问题数据获取方法及装置 | |
CN109871328B (zh) | 一种软件测试方法及装置 | |
CN111061556A (zh) | 执行优先级任务的优化方法、装置、计算机设备及介质 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
CN103593232A (zh) | 一种数据仓库的任务调度方法及装置 | |
CN115454629A (zh) | 基于云原生技术的ai算法与微服务调度方法及其装置 | |
CN110221917B (zh) | 用于分配流式数据的方法及装置 | |
CN110221914B (zh) | 文件处理方法及装置 | |
CN113422808B (zh) | 物联网平台http信息推送方法、系统、装置及介质 | |
CN115147168A (zh) | 一种电子发票开具任务处理方法、装置及系统 | |
CN111597056B (zh) | 一种分布式调度方法、系统、存储介质和设备 | |
US20130117275A1 (en) | Index monitoring system, index monitoring method and program | |
CN110750350B (zh) | 一种大资源调度方法、系统、装置及可读存储介质 | |
CN116842090A (zh) | 一种对账系统、方法、设备及存储介质 | |
CN112306827A (zh) | 日志采集装置、方法和计算机可读存储介质 | |
CN108268313A (zh) | 数据处理的方法和装置 | |
JP6962142B2 (ja) | プログラム及び情報処理装置 | |
CN108898482A (zh) | 多产品的签约方法及装置 | |
CN105429733B (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 |