CN111857616B - 基于多云平台的票据打印方法和设备 - Google Patents

基于多云平台的票据打印方法和设备 Download PDF

Info

Publication number
CN111857616B
CN111857616B CN202010749383.8A CN202010749383A CN111857616B CN 111857616 B CN111857616 B CN 111857616B CN 202010749383 A CN202010749383 A CN 202010749383A CN 111857616 B CN111857616 B CN 111857616B
Authority
CN
China
Prior art keywords
thread
cloud platform
order
binding information
printing
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
Application number
CN202010749383.8A
Other languages
English (en)
Other versions
CN111857616A (zh
Inventor
高之翔
崔建平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sunmi Technology Group Co Ltd
Shenzhen Michelangelo Technology Co Ltd
Original Assignee
Shanghai Sunmi Technology Group Co Ltd
Shenzhen Michelangelo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Sunmi Technology Group Co Ltd, Shenzhen Michelangelo Technology Co Ltd filed Critical Shanghai Sunmi Technology Group Co Ltd
Priority to CN202010749383.8A priority Critical patent/CN111857616B/zh
Publication of CN111857616A publication Critical patent/CN111857616A/zh
Application granted granted Critical
Publication of CN111857616B publication Critical patent/CN111857616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1217Improving printing performance achieving reduced idle time at the output device or increased asset utilization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1222Increasing security of the print job
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1238Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1259Print job monitoring, e.g. job status
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

本发明提供了一种基于多云平台的票据打印方法,包括以下步骤:打印设备的主工作进程与第一服务器建立连接;主工作进程创建第一线程监听第一服务器发送的多条绑定信息,每一条绑定信息对应至多个云平台中的一个云平台;第一线程在监听到第一服务器发送的多条绑定信息时,创建对应的多个本地套接字;主工作进程根据第一线程监听到的绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程;主工作进程基于多个本地套接字将每一条绑定信息分别发送至多个副工作进程中的每一副工作进程;每一副工作进程基于对应的本地套接字接收和解析绑定信息;以及多个副工作进程分别处理与绑定信息对应的云平台的票据打印任务。

Description

基于多云平台的票据打印方法和设备
技术领域
本发明主要涉及信息技术领域,尤其涉及一种基于多云平台的票据打印方法和设备。
背景技术
目前,市场上常见的云打印设备仅能基于一个固定的云服务器开展各项交互工作,这可能会导致一些问题。首先,云打印设备的订单票据数据来源比较单一,云打印设备业务功能拓展性和灵活性较差。而后,当云打印设备端网络顺畅,但云服务器端网络拥塞时,就会导致云服务器端的票据下发缓慢,从而使云打印设备端出票缓慢,这样将降低票据打印效率并影响用户体验。再次,由于云打印设备是处于被动接收的工作状态,只有当云服务器有数据下发至云打印设备时云打印设备才能进行相应的处理。而当云服务器宕机时就相当于切断了云打印设备的数据来源,导致云打印设备无法工作。
发明内容
本发明要解决的技术问题是提供一种基于多云平台的票据打印方法和设备,使打印设备形成与多个云平台实现交互的系统,可以从多个云平台的云服务器获取票据,丰富和拓展了打印设备的数据来源,为用户提高了票据打印的效率和稳定性。
为解决上述技术问题,本发明提供了一种基于多云平台的票据打印方法,包括以下步骤:打印设备的主工作进程与第一服务器建立连接;所述主工作进程创建第一线程监听所述第一服务器发送的多条绑定信息,每一条所述绑定信息对应至多个云平台中的一个云平台;所述第一线程在监听到所述第一服务器发送的所述多条绑定信息时,创建对应的多个本地套接字;所述主工作进程根据所述第一线程监听到的所述绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程;所述主工作进程基于所述多个本地套接字将所述每一条绑定信息分别发送至所述多个副工作进程中的每一副工作进程;所述多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息;以及所述多个副工作进程分别处理与所述接收到的绑定信息对应的云平台的票据打印任务。
在本发明的一实施例中,所述多个副工作进程中的一个副工作进程创建第一子线程用于管理打印任务;所述第一子线程创建第一次级子线程,第二次级子线程和第三次级子线程;所述多个副工作进程中的一个副工作进程处理与所述接收到的绑定信息对应的云平台的票据打印任务的步骤包括:根据票据打印任务信息向所述云平台获取订单ID列表;根据订单ID向所述云平台获取订单内容数据;将所述订单内容数据发送至所述打印设备的主工作进程进行打印;通知所述云平台更新已处理订单的状态;清除已处理的打印数据。
在本发明的一实施例中,所述根据票据打印任务信息向云平台获取订单ID列表包括:所述第一子线程监听所述主工作进程发送的票据打印任务信息;所述第一子线程在监听到主工作进程发送的票据打印任务信息时,创建第一次级子线程,所述第一次级子线程向对应的云平台发出订单ID列表的数据请求并发送所述绑定信息;所述第二次级子线程接收所述云平台从所述绑定信息指向的的数据库获取的订单ID列表数据。
在本发明的一实施例中,所述根据订单ID向云平台获取订单内容数据包括:所述第一次级子线程接收到订单ID列表数据后,在所述第一次级子线程内创建第一处理链表,所述第一处理链表具有M个节点,M与所述列表中的订单ID的数量对应,各个节点存储订单ID信息;M为正整数;所述第二次级子线程取出第一节点中的订单ID信息,向所述云平台发出订单内容数据的请求;第二次级子线程接收所述云平台从绑定信息中的数据库取出的第一订单的内容数据;第二次级子线程接收到所述第一订单的内容数据后,将所述第一订单的内容数据保存在所述第一节点中。
在本发明的一实施例中,所述将订单内容数据发送至所述打印设备的主工作进程进行打印的步骤包括:所述第三次级子线程将所述第一节点包括的订单内容数据发送至所述主工作进程中的打印队列等待打印;所述主工作进程将所述第一节点指定的数据处理完成后,将所述第一处理结果发送至所述副工作进程。
在本发明的一实施例中,通知所述云平台更新已处理订单的状态的步骤包括:所述第三次级子线程在监听到所述副工作进程接收到所述主工作进程发送的第一处理结果后,向所述云平台发出订单处理结果上报请求;所述第三次级子线程接收所述云平台将数据库中的第一订单状态进行更新后返回的任务结束消息。
在本发明的一实施例中,清除已处理的打印数据包括:当所述第三次级子线程收到任务结束消息时,第一子线程结束第三次级子线程并清空第一处理链表中的第一节点。
在本发明的一实施例中,所述第一服务器发送的所述多条绑定信息中的每一条所述绑定信息对应一个云平台的一台或多台云服务器。
在本发明的一实施例中,所述绑定信息包括Number号、ID号、KEY号、URL符和Database号。
在本发明的一实施例中,所述绑定信息通过MQTT协议发送。
本发明还提供一种基于多云平台的票据打印设备,包括:通信模块,用于与第一服务器及多个云平台通信;存储器,存储计算机可执行指令;处理器,配置为执行所述计算机可执行指令以实现如下步骤:主工作进程与所述第一服务器建立连接;所述主工作进程创建第一线程监听所述第一服务器发送的绑定信息,每一条所述绑定信息对应于所述多个云平台中的一个云平台;所述第一线程在监听到所述第一服务器发送的所述绑定信息时,创建对应的多个本地套接字;所述主工作进程根据所述第一线程监听到的所述绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程;所述主工作进程基于所述多个本地套接字将所述绑定信息分别发送至所述多个副工作进程中的每一副工作进程;所述多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息;以及所述多个副工作进程分别处理对应的云平台的票据打印任务。
与现有技术相比,本发明具有以下优点:基于多云平台的票据打印方法和设备使打印设备实现与多个云平台实现的交互,可以基于绑定信息建立的关联从多个云平台的云服务器获取票据,丰富和拓展打印设备的打印数据来源,为打印设备的用户提高票据打印的效率、稳定性和安全性。
附图说明
附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:
图1是本发明一实施例的基于多云平台的票据打印方法的流程图。
图2是本发明一实施例的打印设备的一副工作进程处理票据打印任务的步骤流程图。
图3是本发明一实施例的打印设备的系统组成示意图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
如本申请所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本发明的实施例描述基于多云平台的票据打印方法、系统和计算机可读介质。图1是本发明一实施例的基于多云平台的票据打印方法的流程图。如图1所示,在一实施例中,本发明的基于多云平台的票据打印方法包括步骤101,打印设备的主工作进程与第一服务器建立连接。步骤102,主工作进程创建第一线程,第一线程监听第一服务器发送的多条绑定信息。步骤103,第一线程在监听到第一服务器发送的多条绑定信息时,创建对应的多个本地套接字。步骤104,主工作进程根据第一线程监听到的绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程。步骤105,主工作进程基于多个本地套接字将每一条绑定信息分别发送至多个副工作进程中的每一副工作进程。步骤106,多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息。步骤107,多个副工作进程分别处理与接收到的绑定信息对应的云平台的票据打印任务。
在步骤101,打印设备的主工作进程与第一服务器建立网络连接。网络连接可为有线或无线网络形式。第一服务器存储和传输该打印设备与多个云平台之间的绑定信息。该打印设备用于票据的打印。前述与网络直接连接打印设备可看作运行在云打印模式。如果打印设备通过一上位机连接至网络,并与第一服务器连接,则打印设备也可工作在本地打印模式。
在步骤102,主工作进程创建第一线程,该第一线程监听第一服务器发送的多条绑定信息,每一条绑定信息可对应至多个云平台中的一个云平台。多个云平台每一云平台可对应不同的运营者或管理者。具体地,第一服务器发送的多条绑定信息中的每一条绑定信息可对应一个云平台的一台或多台云服务器。例如,每一条绑定信息对应一个云平台的一台云服务器。
在一些实施例中,绑定信息包括Number号、ID号、KEY号、URL符和Database号。其中,Number号是标示不同云平台的运营者或管理者申请加入打印设备厂商的合作商的顺序编号。ID号是打印设备厂商为云平台的运营者或管理者分配的唯一的身份标识。同一运营者或管理者的ID号相同。KEY号是打印设备厂商分配给云平台的运营者的一个32位随机码。同一云平台的各台不同服务器的KEY号不同。URL符为各云平台的服务器对应的URL地址符。同一云平台的各台不同服务器的URL地址符不同。Database号是不同云平台的服务器可访问的后台数据的地址编号。同一云平台的不同服务器的Database号相同。
在一实施例中,由Number号、ID号、KEY号、URL符和Database号组成的绑定信息可打包成JSON格式数据进行传输。
在一些实施例中,绑定信息通过MQTT协议发送。MQTT(Message QueuingTelemetry Transport,消息队列遥测传输)协议一个基于客户端-服务器的消息发布/订阅(publish/subscribe)传输协议。
在步骤103,第一线程在监听到第一服务器发送的多条绑定信息时,创建对应的多个本地套接字。具体地,例如创建多个Unix本地套接字(Unix Domain Socket)。Unix本地套接字是在Socket框架上发展出一种IPC(Inter-Process Communication,进程间通信)机制。本申请技术方案采用本地套接字方式,无需考虑网络套接字带来的延时等异常情况,实现主副进程间的快速和高效通信。
在步骤104,打印设备的主工作进程根据第一线程监听到的绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程。例如,第一线程监听到有三条绑定信息被传送,则打印设备的主工作进程基于预先配置的第一副工作进程,创建并启动两条新的副工作进程,分别为第二副工作进程和第三副工作进程。
在步骤105,打印设备的主工作进程基于多个本地套接字将每一条绑定信息分别发送至多个副工作进程中的每一副工作进程。例如,主工作进程基于先前创建的三个本地套接字将三条绑定信息中各条绑定信息分别发送至第一副工作进程、第二副工作进程和第三副工作进程。
在步骤106,多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息。例如,第一副工作进程、第二副工作进程和第三副工作进程基于对应的本地套接字接收绑定信息,并解析得到绑定信息中包含的Number号、ID号、KEY号、URL符和Database号等信息。在一实施例中,例如绑定信息通过JSON数据格式传输,则解析接收到的JSON格式数据,以获得前述的Number号、ID号、KEY号、URL符和Database号等信息。
在步骤107,多个副工作进程分别处理与接收到的绑定信息对应的云平台的票据打印任务。因多个副工作进程接收到的绑定信息中包括Number号、ID号、KEY号、URL符和Database号等信息,因而各副工作进程可通过不同的绑定信息与不同的云平台实现对接,从而实现对不同的云平台的票据打印任务的处理。
在一些实施例中,多个副工作进程中的一个副工作进程,例如第一副工作进程,将创建第一子线程用于管理打印任务。在处理打印任务过程中,第一子线程还将创建第一次级子线程,第二次级子线程和第三次级子线程。图2是本发明一实施例的打印设备的一副工作进程处理票据打印任务的步骤流程图。
如图2所示,在一实施例中,第一副工作进程处理与接收到的绑定信息对应的云平台的票据打印任务的步骤包括步骤201,根据票据打印任务信息向云平台获取订单ID列表。步骤202,根据订单ID述云平台获取订单内容数据。步骤203,将订单内容数据发送至打印设备的主工作进程进行打印。步骤204,通知云平台更新已处理订单的状态。步骤205,清除已处理的打印数据。
在步骤201,根据票据打印任务信息向云平台获取订单ID列表。具体地,第一副工作进程所创建的第一子线程监听主工作进程发送的票据打印任务信息。当第一子线程监听到主工作进程发送的票据打印任务信息时,将创建第一次级子线程。第一次级子线程向对应的云平台发出订单ID列表的数据请求并发送所述绑定信息。发送的请求数据可经过加密后传输。该云平台对绑定信息进行验证后下发订单ID列表数据。对请求数据和绑定信息的加密和验证可用过AES对称加密和解密的方式实现。所述请求信息和绑定信息可通过https(超文本传输安全协议)方式发送。
而后,第二次级子线程接收该云平台从绑定信息指向的的数据库获取的订单ID列表数据。例如,该云平台通过绑定信息中的URL符和/或Database号从相应的数据库中获取订单ID列表数据,再将所获取的订单ID列表数据传输至打印设备,打印设备通过第二次级子线程接收。
在一些实施例中,如果第一次级子线程向对应的云平台发出订单ID列表的数据请求因网络拥塞或服务器宕机等故障使得请求失败,则第一次级子线程将重新发送请求信息。重新发送的次数例如以两次为限。如果最后一次请求仍然失败,则由第一子线程结束第一次级子线程并清空相应的票据打印任务信息,继续监听等待并处理下一项票据打印任务。
在步骤202,根据订单ID述云平台获取订单内容数据。第一次级子线程接收到订单ID列表数据后,在第一次级子线程内创建第一处理链表。第一处理链表具有M个节点。M与所述列表中的订单ID的数量对应。M为正整数。例如,第一次级子线程接收到的订单ID列表数据中包括5个订单ID,则在第一次级子线程内创建第一处理链表,第一处理链表具有5个节点。每一节点可对应一小块的存储空间。各个节点存储订单ID信息。订单ID信息例如可包括订单的生成时间、流水号、商户名称和商户设定的打印信息等内容。
接下来,第一副工作进程所创建的第二次级子线程取出第一节点中的订单ID信息,向云平台发出订单内容数据的请求。该请求信息中认可包括绑定信息。云平台端在接收到请求信息后从绑定信息中的数据库取出的第一订单的内容数据,并将第一订单的内容数据传回。第二次级子线程可接收到云平台从绑定信息中的数据库取出的第一订单的内容数据。第二次级子线程接收到第一订单的内容数据后,将第一订单的内容数据保存在第一节点中。订单内容数据例如包括下单商品名称、下单数量、备注要求、配送地址、配送时间等。
在步骤203,将订单内容数据发送至打印设备的主工作进程进行打印。具体地,第一副工作进程所创建的第三次级子线程将第一节点包含的订单内容数据发送至打印设备的主工作进程中的打印队列等待打印。
该主工作进程将第一节点包含的订单内容数据处理完成后,将第一处理结果发送至副工作进程。
在步骤204,通知云平台更新已处理订单的状态。在一示例中,第三次级子线程在监听到副工作进程接收到主工作进程发送的第一处理结果后,向云平台发出订单处理结果上报请求。云平台对数据进行验证后,将数据库中的第一订单状态进行更新,并将任务结束消息返回给第三次级子线程。第三子线程接收到云平台将数据库中的第一订单状态进行更新后返回的任务结束消息。
在步骤205,清除已处理的打印数据。具体的操作例如,当第三次级子线程收到任务结束消息时,第一子线程结束第三次级子线程并清空第一处理链表中的第一节点,释放对应的存储空间。
在一个节点的票据信息打印完成后,将继续进行下一节点的票据信息的请求、接收、处理和打印。在一项票据任务信息处理完成后,清空相应的票据打印任务信息,继续监听等待并处理下一项票据打印任务。
本申请的基于多云平台的票据打印方法,使打印设备实现与多个云平台实现的交互,打印设备基于绑定信息建立的关联从多个云平台的云服务器获取票据,丰富和拓展打印设备的打印数据来源,可克服某一云平台或某一云平台的若干服务器的异常使得打印设备空闲或等待。一个云平台的多台服务器的设置可使得某一服务器出现异常或故障时,其他服务器可及时地实现的替换处理任务,从数据库中取得数据传输至打印设备。因此本申请的基于多云平台的票据打印方法可实现为打印设备的用户提高票据打印的效率、稳定性、可靠性和安全性,从而提升用户体验。
本发明还提供一种基于多云平台的票据打印设备,包括通信模块、存储器和处理器。图3是本发明一实施例的打印设备的系统组成示意图。
如图3所示,在一些实施例中,本申请的基于多云平台的票据打印设备包括通信模块301、处理器(Processor)304、只读存储器(ROM)305和随机存取存储器(RAM)306。通信模块301包括内部通信总线302和通信端口303。内部通信总线302可实现打印设备的系统组件间的通信。打印设备300可通过通信端口303连接网络,并与第一服务器和多个云平台实现连接。例如,图3中所示的第一服务器311、云平台A 307、云平台B 309,还包括与云平台连接的数据库A 308和数据库B 310。不同的云平台可包括一台或多台服务器。例如,云平台A可包括服务器A1和服务器A2,云平台B可包括服务器B1、服务器B2和服务器B3。不同的云平台及云平台中的服务器通过第一服务器存储和传输的绑定信息与打印设备建立关联关系,使打印设备可处理来自多个云平台的票据打印任务。
在图3所示的打印设备的系统组成示意图中,通信模块301可用于与第一服务器及多个云平台通信。存储器305和/或存储器306可存储计算机可执行指令。处理器304可被配置为执行所述计算机可执行指令以实现基于多云平台的票据打印方法的各步骤。各步骤具体包括主工作进程与第一服务器建立连接;主工作进程创建第一线程监听第一服务器发送的绑定信息,每一条所述绑定信息对应于多个云平台中的一个云平台;第一线程在监听到第一服务器发送的所述绑定信息时,创建对应的多个本地套接字;主工作进程根据第一线程监听到的绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程;主工作进程基于多个本地套接字将绑定信息分别发送至多个副工作进程中的每一副工作进程;多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息;以及多个副工作进程分别处理对应的云平台的票据打印任务。
在一些实施例中,多个副工作进程中的一个副工作进程,例如第一副工作进程,将创建第一子线程用于管理打印任务。在处理打印任务过程中,第一子线程还将创建第一次级子线程,第二次级子线程和第三次级子线程。图2是本发明一实施例的打印设备的一副工作进程处理票据打印任务的步骤流程图。
在一实施例中,第一副工作进程处理与接收到的绑定信息对应的云平台的票据打印任务的步骤包括,根据票据打印任务信息向云平台获取订单ID列表。根据订单ID述云平台获取订单内容数据。将订单内容数据发送至打印设备的主工作进程进行打印。通知云平台更新已处理订单的状态。清除已处理的打印数据。更具体的执行过程如前所述,在此不再赘述。
本申请的基于多云平台的票据打印设备,可实现与多个云平台实现的交互,从而可以基于绑定信息建立的关联从多个云平台的云服务器获取票据,丰富和拓展打印设备的打印数据来源,为打印设备的用户提高票据打印的效率。
本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

Claims (16)

1.一种基于多云平台的票据打印方法,包括以下步骤:
打印设备的主工作进程与第一服务器建立连接;
所述主工作进程创建第一线程监听所述第一服务器发送的多条绑定信息,每一条所述绑定信息对应至多个云平台中的一个云平台;
所述第一线程在监听到所述第一服务器发送的所述多条绑定信息时,创建对应的多个本地套接字;
所述主工作进程根据所述第一线程监听到的所述绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程;
所述主工作进程基于所述多个本地套接字将所述每一条绑定信息分别发送至所述多个副工作进程中的每一副工作进程;
所述多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息;以及
所述多个副工作进程分别处理与所述接收到的绑定信息对应的云平台的票据打印任务;
其中,所述第一服务器发送的所述多条绑定信息中的每一条所述绑定信息对应一个云平台的一台或多台云服务器。
2.根据权利要求1所述的基于多云平台的票据打印方法,其特征在于,所述多个副工作进程中的一个副工作进程创建第一子线程用于管理打印任务;所述第一子线程创建第一次级子线程,第二次级子线程和第三次级子线程;所述多个副工作进程中的一个副工作进程处理与所述接收到的绑定信息对应的云平台的票据打印任务的步骤包括:
根据票据打印任务信息向所述云平台获取订单ID列表;
根据订单ID向所述云平台获取订单内容数据;
将所述订单内容数据发送至所述打印设备的主工作进程进行打印;
通知所述云平台更新已处理订单的状态;
清除已处理的打印数据。
3.根据权利要求2所述的基于多云平台的票据打印方法,其特征在于,所述根据票据打印任务信息向云平台获取订单ID列表包括:
所述第一子线程监听所述主工作进程发送的票据打印任务信息;
所述第一子线程在监听到主工作进程发送的票据打印任务信息时,创建第一次级子线程,所述第一次级子线程向对应的云平台发出订单ID列表的数据请求并发送所述绑定信息;
所述第二次级子线程接收所述云平台从所述绑定信息指向的的数据库获取的订单ID列表数据。
4.根据权利要求2所述的基于多云平台的票据打印方法,其特征在于,所述根据订单ID向云平台获取订单内容数据包括:
所述第一次级子线程接收到订单ID列表数据后,在所述第一次级子线程内创建第一处理链表,所述第一处理链表具有M个节点,M与所述列表中的订单ID的数量对应,各个节点存储订单ID信息;M为正整数;
所述第二次级子线程取出第一节点中的订单ID信息,向所述云平台发出订单内容数据的请求;
第二次级子线程接收所述云平台从绑定信息中的数据库取出的第一订单的内容数据;
第二次级子线程接收到所述第一订单的内容数据后,将所述第一订单的内容数据保存在所述第一节点中。
5.根据权利要求4所述的基于多云平台的票据打印方法,其特征在于,将所述订单内容数据发送至所述打印设备的主工作进程进行打印的步骤包括:
所述第三次级子线程将所述第一节点包括的订单内容数据发送至所述主工作进程中的打印队列等待打印;
所述主工作进程将所述第一节点指定的数据处理完成后,将所述第一处理结果发送至所述副工作进程。
6.根据权利要求5所述的基于多云平台的票据打印方法,其特征在于,通知所述云平台更新已处理订单的状态的步骤包括:
所述第三次级子线程在监听到所述副工作进程接收到所述主工作进程发送的第一处理结果后,向所述云平台发出订单处理结果上报请求;
所述第三次级子线程接收所述云平台将数据库中的第一订单状态进行更新后返回的任务结束消息。
7.根据权利要求6所述的基于多云平台的票据打印方法,其特征在于,清除已处理的打印数据包括:
当所述第三次级子线程收到任务结束消息时,第一子线程结束第三次级子线程并清空第一处理链表中的第一节点。
8.根据权利要求1所述的基于多云平台的票据打印方法,其特征在于,所述绑定信息包括Number号、ID号、KEY号、URL符和Database号。
9.根据权利要求1所述的基于多云平台的票据打印方法,其特征在于,所述绑定信息通过MQTT协议发送。
10.一种基于多云平台的票据打印设备,包括:
通信模块,用于与第一服务器及多个云平台通信;
存储器,存储计算机可执行指令;
处理器,配置为执行所述计算机可执行指令以实现如下步骤:
主工作进程与所述第一服务器建立连接;
所述主工作进程创建第一线程监听所述第一服务器发送的多条绑定信息,每一条所述绑定信息对应至多个云平台中的一个云平台;
所述第一线程在监听到所述第一服务器发送的所述多条绑定信息时,创建对应的多个本地套接字;
所述主工作进程根据所述第一线程监听到的所述绑定信息的条数,基于预先配置的第一副工作进程,创建并启动对应数量的多个副工作进程;
所述主工作进程基于所述多个本地套接字将所述每一条绑定信息分别发送至所述多个副工作进程中的每一副工作进程;
所述多个副工作进程中的每一副工作进程基于对应的本地套接字接收和解析接收到的绑定信息;以及
所述多个副工作进程分别处理与所述接收到的绑定信息对应的云平台的票据打印任务;
其中,所述第一服务器发送的所述多条绑定信息中的每一条所述绑定信息对应一个云平台的一台或多台云服务器。
11.根据权利要求10所述的基于多云平台的票据打印设备,其特征在于,所述多个副工作进程中的一个副工作进程创建第一子线程用于管理打印任务;所述第一子线程创建第一次级子线程,第二次级子线程和第三次级子线程;所述多个副工作进程中的一个副工作进程处理与所述接收到的绑定信息对应的云平台的票据打印任务的步骤包括:
根据票据打印任务信息向所述云平台获取订单ID列表;
根据订单ID向所述云平台获取订单内容数据;
将所述订单内容数据发送至所述打印设备的主工作进程进行打印;
通知所述云平台更新已处理订单的状态;
清除已处理的打印数据。
12.根据权利要求11所述的基于多云平台的票据打印设备,其特征在于,所述根据票据打印任务信息向云平台获取订单ID列表包括:
所述第一子线程监听所述主工作进程发送的票据打印任务信息;
所述第一子线程在监听到主工作进程发送的票据打印任务信息时,创建第一次级子线程,所述第一次级子线程向对应的云平台发出订单ID列表的数据请求并发送所述绑定信息;
所述第二次级子线程接收所述云平台从所述绑定信息指向的的数据库获取的订单ID列表数据。
13.根据权利要求11所述的基于多云平台的票据打印设备,其特征在于,所述根据订单ID向云平台获取订单内容数据包括:
所述第一次级子线程接收到订单ID列表数据后,在所述第一次级子线程内创建第一处理链表,所述第一处理链表具有M个节点,M与所述列表中的订单ID的数量对应,各个节点存储订单ID信息;M为正整数;
所述第二次级子线程取出第一节点中的订单ID信息,向所述云平台发出订单内容数据的请求;
第二次级子线程接收所述云平台从绑定信息中的数据库取出的第一订单的内容数据;
第二次级子线程接收到所述第一订单的内容数据后,将所述第一订单的内容数据保存在所述第一节点中。
14.根据权利要求13所述的基于多云平台的票据打印设备,其特征在于,将所述订单内容数据发送至所述打印设备的主工作进程进行打印的步骤包括:
所述第三次级子线程将所述第一节点包括的订单内容数据发送至所述主工作进程中的打印队列等待打印;
所述主工作进程将所述第一节点指定的数据处理完成后,将所述第一处理结果发送至所述副工作进程。
15.根据权利要求14所述的基于多云平台的票据打印设备,其特征在于,通知所述云平台更新已处理订单的状态的步骤包括:
所述第三次级子线程在监听到所述副工作进程接收到所述主工作进程发送的第一处理结果后,向所述云平台发出订单处理结果上报请求;
所述第三次级子线程接收所述云平台将数据库中的第一订单状态进行更新后返回的任务结束消息。
16.根据权利要求15所述的基于多云平台的票据打印设备,其特征在于,清除已处理的打印数据包括:
当所述第三次级子线程收到任务结束消息时,第一子线程结束第三次级子线程并清空第一处理链表中的第一节点。
CN202010749383.8A 2020-07-30 2020-07-30 基于多云平台的票据打印方法和设备 Active CN111857616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010749383.8A CN111857616B (zh) 2020-07-30 2020-07-30 基于多云平台的票据打印方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010749383.8A CN111857616B (zh) 2020-07-30 2020-07-30 基于多云平台的票据打印方法和设备

Publications (2)

Publication Number Publication Date
CN111857616A CN111857616A (zh) 2020-10-30
CN111857616B true CN111857616B (zh) 2024-03-08

Family

ID=72945389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010749383.8A Active CN111857616B (zh) 2020-07-30 2020-07-30 基于多云平台的票据打印方法和设备

Country Status (1)

Country Link
CN (1) CN111857616B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825273A (zh) * 2005-02-25 2006-08-30 微软公司 打印作业排队和调度系统及方法
CN108132873A (zh) * 2016-12-01 2018-06-08 无锡中科西北星科技有限公司 系统过程日志打印与远程多终端日志调试控制系统
CN110362993A (zh) * 2019-07-05 2019-10-22 腾讯科技(深圳)有限公司 恶意进程识别方法、终端、服务器、系统及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825273A (zh) * 2005-02-25 2006-08-30 微软公司 打印作业排队和调度系统及方法
CN108132873A (zh) * 2016-12-01 2018-06-08 无锡中科西北星科技有限公司 系统过程日志打印与远程多终端日志调试控制系统
CN110362993A (zh) * 2019-07-05 2019-10-22 腾讯科技(深圳)有限公司 恶意进程识别方法、终端、服务器、系统及存储介质

Also Published As

Publication number Publication date
CN111857616A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
EP3979592A1 (en) Decentralization processing method, communication proxy, host and storage medium
CN107547589B (zh) 一种数据采集处理方法以及装置
JP6050812B2 (ja) デバイス管理方法、装置、およびシステム
CN108681777B (zh) 一种基于分布式系统的机器学习程序运行的方法和装置
WO2017028733A1 (zh) 软件安装包打包方法、装置和系统以及机器可读存储介质
CN103460203A (zh) 群集唯一标识符
CN109656755A (zh) 检测设备状态的方法和系统
US20080162690A1 (en) Application Management System
CA2843284C (en) Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application
CN106452951B (zh) 一种信息处理方法、装置及系统
CN115114044A (zh) 消息推送方法、装置、设备和介质
CN116319732A (zh) 一种基于RabbitMQ的消息队列集中配置管理系统及方法
CN110768818B (zh) 一种网络管理方法和装置
EP3171565B1 (en) Methods, devices and system for netconf hello packets interaction
CN111857616B (zh) 基于多云平台的票据打印方法和设备
EP3026860B1 (en) Method and system for transmission management of full configuration synchronization between eml-nml
JP4516594B2 (ja) メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム
CN112165527B (zh) 文件分发方法、文件分发装置和电子设备
CN107005468B (zh) 一种待上载的nsd的确定方法及装置
CN113254097A (zh) 配置信息的下发方法和装置、电子设备和存储介质
CN104363208A (zh) 一种计算机集群间密钥管理方法及系统
CN109818768B (zh) 一种物理设施管理系统、pnf网络管理系统及方法
CN115499435B (zh) 任务调度方法、系统、电子设备及计算机可读存储介质
CN102123051A (zh) 一种扩展snmp错误反馈信息的方法
WO2019216194A1 (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
GR01 Patent grant
GR01 Patent grant