CN113157420A - 跨平台分布式任务调度系统及调度方法 - Google Patents

跨平台分布式任务调度系统及调度方法 Download PDF

Info

Publication number
CN113157420A
CN113157420A CN202110461996.6A CN202110461996A CN113157420A CN 113157420 A CN113157420 A CN 113157420A CN 202110461996 A CN202110461996 A CN 202110461996A CN 113157420 A CN113157420 A CN 113157420A
Authority
CN
China
Prior art keywords
task
message
queue
message center
execution
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
Application number
CN202110461996.6A
Other languages
English (en)
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 Linshi Artificial Intelligence Technology Co ltd
Original Assignee
Shanghai Linshi Artificial Intelligence 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 Linshi Artificial Intelligence Technology Co ltd filed Critical Shanghai Linshi Artificial Intelligence Technology Co ltd
Priority to CN202110461996.6A priority Critical patent/CN113157420A/zh
Publication of CN113157420A publication Critical patent/CN113157420A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种跨平台分布式任务调度系统,包括,任务发起端,把包装好的消息块发送到消息中心的服务地址上;消息中心,接收消息块,并存放在内存或磁盘中,同时把任务发送给任务接收端;任务接收端,接收来自消息中心的任务后,把任务放在任务等待队列中,等待任务派发端把任务派发出去;任务派发端,定时轮训任务等待队列,发现队列中有任务时,会把任务发送到任务执行队列;任务执行端,定时轮训任务执行队列,发现队列中有任务时,会取出任务,执行任务,完成后发现ack消息到消息中心。本发明的分布式任务调度系统的相同代码可直接在不同操作系统上直接运行,无需做任何修改。

Description

跨平台分布式任务调度系统及调度方法
技术领域
本发明属于计算机科学技术领域,具体涉及一种跨平台分布式任务调度系统及调度方法。
背景技术
目前普遍的分布式任务调度系统都是根据操作系统定制的,不具备跨平台使用的能力。在不同的平台(主要是指Linux和Windows之间),甚至相同平台但是不同发行版的Linux和不同版本的Windows,都不一定能够通用,这是因为不同平台上构建子进程和子线程的方式有很大的区别,通常分布式任务调度系统都需要构建子进程或者子线程来进行任务的调度和执行,而目前的分布式任务调度系统在底层都没有对不同平台进行兼容,不能在不同平台上通用的构建调度和执行任务的子进行或子线程。
发明内容
本发明的发明目的是为了解决上述技术问题,提供一种跨平台分布式任务调度系统及调度方法,在任务执行端可以平行扩展实现各个不同操作系统级的子进程和子线程初始化,做到跨平台的功能。
为解决上述技术问题,本发明的实施例提供一种跨平台分布式任务调度系统,包括任务发起端,消息中心,任务接收端,任务派发端和任务执行端,所述任务执行端设有操作系统兼容模块,其中,
所述任务发起端把包括任务模块、任务方法、任务参数的数据包装成一个消息块,并把包装好的消息块发送到消息中心的服务地址上;
所述消息中心接收来自任务发起端发送过来的消息块,并存放在内存或磁盘中,同时把任务发送给与消息中心连接的任务接收端;
所述任务接收端接收来自消息中心的任务后,把任务放在任务等待队列中,等待任务派发端把任务派发出去;
所述任务派发端定时轮训任务等待队列,发现队列中有任务时,会把任务发送到任务执行队列;
所述任务执行端定时轮训任务执行队列,发现队列中有任务时,会取出任务,执行任务,完成后发现ack消息到消息中心。其中,所述消息块有head、body、properties三个组成部分;其中,head中包括任务唯一ID、任务名称、任务模块名称、任务重试次数、任务执行时间限制;body中包括任务方法执行时的具体参数;properties中包括任务执行后回复的对象。
本发明还提供一种跨平台分布式任务调度系统的调度方法,操作系统兼容模块通过sys.platform 函数来获取当前操作系统的类型,通过该类型取到对应的Popen函数核心实现,完成跨平台兼容。
上述的跨平台分布式任务调度系统的调度方法包括如下步骤:
S1、消息发送端包装消息,发送到消息中心;
S2、消息中心把消息派发到连接着自己的消息接收端;
S3、消息接收端把消息中心发给自己的消息存到内存队列中,该内存队列命名为任务等待队列;
S4、消息派发端轮训任务等待队列,把其中的消息取出,方法另一个内存队列中,该内存队列命名为任务执行队列;
S5、消息执行端轮训任务执行队列,把其中的消息取出,调用sys.platform 函数来获取当前操作系统的类型,根据操作系统的类型,选择已经实现的Popen函数,创建出子进程,然后把消息传给子进程执行;子进程执行完成推出后,消息执行端向消息中心发送ack消息。
本发明的上述技术方案的有益效果如下:本发明提供的跨平台分布式任务调度系统及调度方法,是在任务执行端实现了一个操作系统兼容模块(concurrency模块),该模块通过sys.platform 函数来获取当前操作系统的类型,通过该类型取到对应的Popen函数实现,完成跨平台兼容。本发明的分布式任务调度系统的相同代码可直接在不同操作系统上直接运行,无需做任何修改。
附图说明
图1为本发明的结构框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示,本发明提供了一种跨平台分布式任务调度系统,包括任务发起端,消息中心,任务接收端,任务派发端和任务执行端,所述任务执行端设有操作系统兼容模块,其中,
所述任务发起端会配置消息中心的服务地址,例如:
amqp://user:pwd@192.168.100.100:5672/task。
所述任务发起端把包括任务模块、任务方法、任务参数的数据包装成一个消息块,并把包装好的消息块发送到消息中心的服务地址上。
所述消息块有head、body、properties三个组成部分;其中,head中包括任务唯一ID、任务名称、任务模块名称、任务重试次数、任务执行时间限制;body中包括任务方法执行时的具体参数;properties中包括任务执行后回复的对象。
所述消息中心是一个实现了amqp协议的消息队列,接收来自任务发起端发送过来的消息块,并存放在内存或磁盘中,同时把任务发送给与消息中心连接的任务接收端;
所述任务接收端会配置消息中心的服务地址,例如:
amqp://user:pwd@192.168.100.100:5672/task。
所述任务接收端会和消息中心基于amqp协议建立长连接,等待消息中心发送任务给自己。
所述任务接收端接收来自消息中心的任务后,把任务放在任务等待队列中,等待任务派发端把任务派发出去;
所述任务派发端定时轮训任务等待队列(是一个内存队列),发现队列中有任务时,会把任务发送到任务执行队列;
所述任务执行端会配置消息中心的服务地址,例如:
amqp://user:pwd@192.168.100.100:5672/task。
所述任务执行端定时轮训任务执行队列(是另一个内存队列),发现队列中有任务时,会取出任务,执行任务,完成后发现ack消息到消息中心。
由上可知,任务派发端和任务接收端访问同一个内存队列,即任务等待队列)。
任务派发端和任务执行端访问同一个内存队列,即任务执行队列。
本发明还提供一种跨平台分布式任务调度系统的调度方法,操作系统兼容模块通过sys.platform 函数来获取当前操作系统的类型,通过该类型取到对应的Popen函数核心实现,完成跨平台兼容。
上述的跨平台分布式任务调度系统的调度方法包括如下步骤:
S1、消息发送端包装消息,发送到消息中心;
S2、消息中心把消息派发到连接着自己的消息接收端;
S3、消息接收端把消息中心发给自己的消息存到内存队列中,该内存队列命名为任务等待队列;
S4、消息派发端轮训任务等待队列,把其中的消息取出,方法另一个内存队列中,该内存队列命名为任务执行队列;
S5、消息执行端轮训任务执行队列,把其中的消息取出,调用sys.platform 函数来获取当前操作系统的类型,根据操作系统的类型,选择已经实现的Popen函数,创建出子进程,然后把消息传给子进程执行;子进程执行完成推出后,消息执行端向消息中心发送ack消息。
本发明提供的跨平台分布式任务调度系统及调度方法,是在任务执行端实现了一个操作系统兼容模块(concurrency模块),该模块通过sys.platform 函数来获取当前操作系统的类型,通过该类型取到对应的Popen函数实现,完成跨平台兼容。本发明的分布式任务调度系统的相同代码可直接在不同操作系统上直接运行,无需做任何修改。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种跨平台分布式任务调度系统,其特征在于,包括任务发起端,消息中心,任务接收端,任务派发端和任务执行端,所述任务执行端设有操作系统兼容模块,其中,
所述任务发起端把包括任务模块、任务方法、任务参数的数据包装成一个消息块,并把包装好的消息块发送到消息中心的服务地址上;
所述消息中心接收来自任务发起端发送过来的消息块,并存放在内存或磁盘中,同时把任务发送给与消息中心连接的任务接收端;
所述任务接收端接收来自消息中心的任务后,把任务放在任务等待队列中,等待任务派发端把任务派发出去;
所述任务派发端定时轮训任务等待队列,发现队列中有任务时,会把任务发送到任务执行队列;
所述任务执行端定时轮训任务执行队列,发现队列中有任务时,会取出任务,执行任务,完成后发现ack消息到消息中心。
2.根据权利要求1所述的跨平台分布式任务调度系统,其特征在于,所述消息块有head、body、properties三个组成部分;其中,head中包括任务唯一ID、任务名称、任务模块名称、任务重试次数、任务执行时间限制;body中包括任务方法执行时的具体参数;properties中包括任务执行后回复的对象。
3.一种如权利要求1所述的跨平台分布式任务调度系统的调度方法,其特征在于,操作系统兼容模块通过sys.platform 函数来获取当前操作系统的类型,通过该类型取到对应的Popen函数核心实现,完成跨平台兼容。
4.根据权利要求3所述的跨平台分布式任务调度系统的调度方法,其特征在于,包括如下步骤:
S1、消息发送端包装消息,发送到消息中心;
S2、消息中心把消息派发到连接着自己的消息接收端;
S3、消息接收端把消息中心发给自己的消息存到内存队列中,该内存队列命名为任务等待队列;
S4、消息派发端轮训任务等待队列,把其中的消息取出,方法另一个内存队列中,该内存队列命名为任务执行队列;
S5、消息执行端轮训任务执行队列,把其中的消息取出,调用sys.platform 函数来获取当前操作系统的类型,根据操作系统的类型,选择已经实现的Popen函数,创建出子进程,然后把消息传给子进程执行;子进程执行完成推出后,消息执行端向消息中心发送ack消息。
CN202110461996.6A 2021-04-27 2021-04-27 跨平台分布式任务调度系统及调度方法 Pending CN113157420A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110461996.6A CN113157420A (zh) 2021-04-27 2021-04-27 跨平台分布式任务调度系统及调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110461996.6A CN113157420A (zh) 2021-04-27 2021-04-27 跨平台分布式任务调度系统及调度方法

Publications (1)

Publication Number Publication Date
CN113157420A true CN113157420A (zh) 2021-07-23

Family

ID=76871917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110461996.6A Pending CN113157420A (zh) 2021-04-27 2021-04-27 跨平台分布式任务调度系统及调度方法

Country Status (1)

Country Link
CN (1) CN113157420A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160313991A1 (en) * 2013-06-16 2016-10-27 President And Fellows Of Harvard College Methods and apparatus for parallel processing
CN106874067A (zh) * 2017-01-24 2017-06-20 华南理工大学 基于轻量级虚拟机的并行计算方法、装置及系统
CN111427551A (zh) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、设备、存储介质
CN111913793A (zh) * 2020-07-31 2020-11-10 同盾控股有限公司 分布式任务调度方法、装置、节点设备和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160313991A1 (en) * 2013-06-16 2016-10-27 President And Fellows Of Harvard College Methods and apparatus for parallel processing
CN106874067A (zh) * 2017-01-24 2017-06-20 华南理工大学 基于轻量级虚拟机的并行计算方法、装置及系统
CN111427551A (zh) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、设备、存储介质
CN111913793A (zh) * 2020-07-31 2020-11-10 同盾控股有限公司 分布式任务调度方法、装置、节点设备和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐小龙等: "开放云端计算环境中的任务执行代码安全机制", 《计算机科学》 *

Similar Documents

Publication Publication Date Title
CN103888441B (zh) 一种应用程序与协议栈之间的信息传输方法及处理装置
US20160011997A1 (en) Enhanced I/O Performance in a Multi-Processor System Via Interrupt Affinity Schemes
US6839804B2 (en) Disk array storage device with means for enhancing host application performance using task priorities
US20190037031A1 (en) System and method for supporting data communication in a heterogeneous environment
TW514786B (en) Processing method and computer system for driver in intelligent peripherals
WO2008041071B1 (en) System for managing radio modems
US7937499B1 (en) Methods and apparatus for dynamically switching between polling and interrupt mode for a ring buffer of a network interface card
US20110093690A1 (en) System and Method for a Managed Bios
CN109408243B (zh) 一种基于rdma的数据处理方法、装置和介质
CN105068865A (zh) 任务调度方法和装置
US20050097226A1 (en) Methods and apparatus for dynamically switching between polling and interrupt to handle network traffic
JP3938343B2 (ja) タスク管理システム、プログラム、及び制御方法
US20190013962A1 (en) Modular communication framework
CN102446144A (zh) 一种串口资源调度方法及装置、系统
CN103019975A (zh) 通用串行总线传输控制方法及主机设备
CN113157420A (zh) 跨平台分布式任务调度系统及调度方法
CN111400214B (zh) 一种双核共用网口的实现方法、智能终端及存储介质
EP2501203A1 (en) Universal driving method and driver of mobile broadband device
CN108055186B (zh) 一种主从处理器通信方法及装置
CN109462663B (zh) 一种限制系统资源占用的方法、语音交互系统及存储介质
CN103514122B (zh) 一种VxWorks操作系统下USB设备增强识别方法
CN102117261A (zh) 一种芯片内部处理器之间的通信方法
US9619005B2 (en) Apparatus and method for saving power of USB device
EP1450256A2 (en) Inter-task communications method, program, recording medium, and electronic device
US8869171B2 (en) Low-latency communications

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