System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 物联网设备的任务调度方法及分布式任务调度系统技术方案_技高网

物联网设备的任务调度方法及分布式任务调度系统技术方案

技术编号:40232543 阅读:5 留言:0更新日期:2024-02-02 22:33
本申请提供了物联网设备的任务调度方法及分布式任务调度系统,方法包括:kafka集群模块接收并存储来自物联网平台的携带有任务执行时间信息的待调度任务信息;kafka消费者实例从kafka集群模块获取待调度任务信息并发送至任务调度器实例;任务调度器实例根据任务执行时间信息生成待执行任务信息,并通过任务入队接口将待执行任务信息添加至无锁任务队列;任务通知实例通过任务出队接口从无锁任务队列获取待执行任务信息并发送至对应的至少一个目标物联网设备,以使各目标物联网设备根据待执行任务信息执行任务。本申请提供的上述物联网设备的任务调度方法及分布式任务调度系统能够提高任务分发的及时性和任务调度效率。

【技术实现步骤摘要】

本申请涉及物联网,尤其涉及一种物联网设备的任务调度方法及分布式任务调度系统


技术介绍

1、在物联网技术不断发展的背景下,物联网设备的种类不断增加,包括工业、智能家居、水利、电力等各类设备,种类繁多。在物联网中,从物联网设备定期读取状态数据是必不可少的操作。

2、现有的实现方式通常是采用任务调度的模式,物联网设备根据任务进行数据上报,面对大量的物联网设备对应的大量的数据上报任务,为有效协调任务的调度,现有方案中通常采用锁机制来实现任务分发。然而,采用锁机制来实现任务分发调度时,可能存在锁竞争、数据库操作延迟等性能问题,使得任务调度效率较低,尤其不适应大量的任务需要调度的情形。因此,亟需一种物联网设备的任务调度方案,旨在协调需要调度的大量任务,提高任务分发的及时性和任务调度效率,提高对大量任务调度的协调性和有序性。


技术实现思路

1、本申请实施例提供了物联网设备的任务调度方法及分布式任务调度系统,能够协调需要调度的大量任务,提高任务分发的及时性和任务调度效率,提高对大量任务调度的协调性和有序性。

2、第一方面,本申请实施例提供了一种物联网设备的任务调度方法,应用于分布式任务调度系统,所述分布式任务调度系统包括:多个任务调度器实例、无锁任务队列、kafka集群模块、多个kafka消费者实例、以及多个任务通知实例;所述无锁任务队列对应的任务入队接口采用针对尾指针的比较并交换原子操作进行任务的入队控制;所述无锁任务队列对应的任务出队接口采用针对头指针的比较并交换原子操作进行任务的出队控制,所述方法包括:

3、所述kafka集群模块接收并存储来自物联网平台的待调度任务信息;所述待调度任务信息中携带有任务执行时间信息;

4、所述kafka消费者实例从所述kafka集群模块获取所述待调度任务信息,并将所述待调度任务信息发送至所述任务调度器实例;

5、所述任务调度器实例根据所述任务执行时间信息生成所述待调度任务信息对应的待执行任务信息,并通过所述任务入队接口将所述待执行任务信息添加至所述无锁任务队列;

6、所述任务通知实例通过所述任务出队接口从所述无锁任务队列获取所述待执行任务信息,并将所述待执行任务信息发送至对应的至少一个目标物联网设备,以使各所述目标物联网设备根据所述待执行任务信息执行任务。

7、第二方面,本申请实施例提供了一种分布式任务调度系统,所述分布式任务调度系统包括多个任务调度器实例、无锁任务队列、kafka集群模块、多个kafka消费者实例以及多个任务通知实例;所述无锁任务队列对应的任务入队接口采用针对尾指针的比较并交换原子操作进行任务的入队控制;所述无锁任务队列对应的任务出队接口采用针对头指针的比较并交换原子操作进行任务的出队控制;

8、所述kafka集群模块用于:接收并存储来自物联网平台的待调度任务信息;所述待调度任务信息中携带有任务执行时间信息;

9、所述kafka消费者实例用于:从所述kafka集群模块获取所述待调度任务信息,并将所述待调度任务信息发送至所述任务调度器实例;

10、所述任务调度器实例用于:根据所述任务执行时间信息生成所述待调度任务信息对应的待执行任务信息,并通过所述任务入队接口将所述待执行任务信息添加至所述无锁任务队列;

11、所述任务通知实例用于:通过所述任务出队接口从所述无锁任务队列获取所述待执行任务信息,并将所述待执行任务信息发送至对应的至少一个目标物联网设备,以使各所述目标物联网设备根据所述待执行任务信息执行任务。

12、本申请实施例提供了一种物联网设备的任务调度方法及分布式任务调度系统,方法应用于分布式任务调度系统,分布式任务调度系统包括:多个任务调度器实例、无锁任务队列、kafka集群模块、多个kafka消费者实例、以及任务通知实例;无锁任务队列对应的任务入队接口采用针对尾指针的比较并交换原子操作进行任务的入队控制;无锁任务队列对应的任务出队接口采用针对头指针的比较并交换原子操作进行任务的出队控制,方法包括:kafka集群模块接收并存储来自物联网平台的待调度任务信息;待调度任务信息中携带有任务执行时间信息;kafka消费者实例从kafka集群模块获取待调度任务信息,并将待调度任务信息发送至任务调度器实例;任务调度器实例根据任务执行时间信息生成待调度任务信息对应的待执行任务信息,并通过任务入队接口将待执行任务信息添加至无锁任务队列;任务通知实例通过任务出队接口从无锁任务队列获取待执行任务信息,并将待执行任务信息发送至对应的至少一个目标物联网设备,以使各目标物联网设备根据待执行任务信息执行任务。本申请中,面对物联网平台产生的大量的待调度任务信息,采用kafka集群模块作为消息中间件承接物联网平台产生的任务流量,实现流量削峰,并利用多个kafka消费者实例负责从kafka集群模块中获取待调度任务信息给到任务调度器实例来进行实际的任务调度;对于实际的任务调度,本申请采用多个任务调度器实例来负责根据任务执行时间信息进行任务调度,添加待执行任务至无锁任务队列,多个任务通知实例则作为无锁任务队列的消费者通过无锁任务队列对应的任务出队接口获取待执行任务并发送至对应的至少一个目标物联网设备,提高了任务的分发效率;对于任务队列,本申请采用无锁化的任务队列,且无锁任务队列对应的任务入队接口、任务出队接口采用比较并交换原子操作进行对应的任务的入队控制和任务出队控制,一方面,无锁化能够降低任务的获取和添加时间,有利于及时分发任务到达物联网设备,另一方面,采用比较并交换原子操作进行入队控制和出队控制则能够避免多个任务通知实例获取任务、多个任务调度器实例添加任务时导致的竞争,实现多实例下任务的有序分发。综上,本申请提供的上述物联网设备的任务调度方法及分布式任务调度系统能够协调需要调度的大量任务,提高任务分发的及时性和任务调度效率,提高对大量任务调度的协调性和有序性。

本文档来自技高网...

【技术保护点】

1.一种物联网设备的任务调度方法,其特征在于,应用于分布式任务调度系统,所述分布式任务调度系统包括:多个任务调度器实例、无锁任务队列、kafka集群模块、多个kafka消费者实例、以及多个任务通知实例;所述无锁任务队列对应的任务入队接口采用针对尾指针的比较并交换原子操作进行任务的入队控制;所述无锁任务队列对应的任务出队接口采用针对头指针的比较并交换原子操作进行任务的出队控制,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述无锁任务队列为循环队列,所述任务入队接口对应的处理步骤包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述当前头指针位置值和所述无锁任务队列的大小获取下一尾指针位置值之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述无锁任务队列为循环队列,所述任务出队接口对应的处理步骤包括:

5.根据权利要求4所述的方法,其特征在于,所述获取所述无锁任务队列的当前头指针位置值和当前尾指针位置值之后,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述分布式任务调度系统还包括任务信息存储模块,所述kafka消费者实例从所述kafka集群模块获取所述待调度任务信息之后,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述任务通知实例通过所述任务出队接口从所述无锁任务队列获取所述待执行任务信息,并将所述待执行任务信息发送至对应的至少一个目标物联网设备之后,所述方法还包括:

8.根据权利要求6所述的方法,其特征在于,所述任务调度器实例将所述待执行任务信息对应的任务调度记录写入所述任务信息存储模块中之后,所述方法还包括:

9.根据权利要求1所述的方法,其特征在于,所述任务通知实例通过所述任务出队接口从所述无锁任务队列获取所述待执行任务信息,并将所述待执行任务信息发送至对应的至少一个目标物联网设备,以使各所述目标物联网设备根据所述待执行任务信息执行任务,包括:

10.一种分布式任务调度系统,其特征在于,所述分布式任务调度系统包括多个任务调度器实例、无锁任务队列、kafka集群模块、多个kafka消费者实例以及多个任务通知实例;所述无锁任务队列对应的任务入队接口采用针对尾指针的比较并交换原子操作进行任务的入队控制;所述无锁任务队列对应的任务出队接口采用针对头指针的比较并交换原子操作进行任务的出队控制;

...

【技术特征摘要】

1.一种物联网设备的任务调度方法,其特征在于,应用于分布式任务调度系统,所述分布式任务调度系统包括:多个任务调度器实例、无锁任务队列、kafka集群模块、多个kafka消费者实例、以及多个任务通知实例;所述无锁任务队列对应的任务入队接口采用针对尾指针的比较并交换原子操作进行任务的入队控制;所述无锁任务队列对应的任务出队接口采用针对头指针的比较并交换原子操作进行任务的出队控制,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述无锁任务队列为循环队列,所述任务入队接口对应的处理步骤包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述当前头指针位置值和所述无锁任务队列的大小获取下一尾指针位置值之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述无锁任务队列为循环队列,所述任务出队接口对应的处理步骤包括:

5.根据权利要求4所述的方法,其特征在于,所述获取所述无锁任务队列的当前头指针位置值和当前尾指针位置值之后,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述分布式任务调度系统还包括任务信息存储模块,所述kafka消费者实例从所...

【专利技术属性】
技术研发人员:何振勇段小勇廖润迪陈超方国才
申请(专利权)人:深圳市前海研祥亚太电子装备技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1