一种搬运任务调度方法、装置、电子设备和存储介质与流程

专利检索2025-02-18  19


本发明涉及分布式,尤其涉及一种搬运任务调度方法、装置、电子设备和存储介质。


背景技术:

1、在当前的amhs(automated material handling system,自动物料搬送系统)中,可以利用分布式技术,将物料控制系统(material control system,mcs)下发的批量搬运任务同时给多个调度器,调度器负责为各个搬运任务进行调度处理,包括确定执行该搬运任务的天车和搬运路径等,从而提升amhs的搬运效率。在这种情况下,由于多个调度器维护了相同的任务队列,如果大家都依次申请各个任务的锁,可能会造成竞争,即出现多个调度器同时争夺同一条任务的执行权的情形。若多个调度器同时检查任务的状态并认为任务可以执行,然后同时开始执行任务,将导致状态混乱或任务执行冲突,导致连续申请锁失败。因此需要一种精准的调度方式来保障数据一致性,避免多个调度器同时调度同一条搬运任务,此外还需要保证任务执行顺序是符合各个任务的优先级排序的。


技术实现思路

1、本发明提供一种搬运任务调度方法、装置、电子设备和存储介质,用以解决现有技术中容易出现多个调度器同时争夺同一条任务的执行权的情形、导致连续申请锁失败的缺陷。

2、本发明提供一种搬运任务调度方法,包括:

3、将搬运任务队列同步至多个调度器;所述搬运任务队列中存储了按照执行优先级由大到小排列的多个搬运任务;

4、基于所述多个调度器针对所述搬运任务队列中的第一个搬运任务向服务器申请分布式锁,确定当前成功获得锁的调度器和当前没有获得锁的调度器;

5、基于所述当前成功获得锁的调度器,执行所述第一个搬运任务的调度工作;

6、针对各个当前没有获得锁的调度器,基于所述各个当前没有获得锁的调度器与服务器之间的实时网络延迟,确定所述搬运任务队列中所述各个当前没有获得锁的调度器各自对应的当前待申请任务,基于所述各个当前没有获得锁的调度器针对各自对应的当前待申请任务向服务器申请分布式锁,并在任一所述当前没有获得锁的调度器成功申请到对应的当前待申请任务的分布式锁后,基于相应调度器执行对应的当前待申请任务的调度工作。

7、根据本发明提供的一种搬运任务调度方法,所述基于所述各个当前没有获得锁的调度器与服务器之间的实时网络延迟,确定所述搬运任务队列中所述各个当前没有获得锁的调度器各自对应的当前待申请任务,基于所述各个当前没有获得锁的调度器针对各自对应的当前待申请任务向服务器申请分布式锁,具体包括:

8、将所述各个当前没有获得锁的调度器按照相应调度器与服务器之间的实时网络延迟由小到大的顺序进行排序;

9、基于所述各个当前没有获得锁的调度器的顺序,确定所述搬运任务队列中优先级最大的若干个未调度任务分别作为所述各个当前没有获得锁的调度器各自对应的当前待申请任务;其中,任一当前没有获得锁的调度器的排序越靠前,所述任一当前没有获得锁的调度器对应的当前待申请任务的优先级越大;

10、基于所述各个当前没有获得锁的调度器的顺序,依次基于相应调度器,在延迟相应的延迟时间后针对对应的当前待申请任务向服务器申请分布式锁;其中,任一当前没有获得锁的调度器的排序越靠后,所述任一当前没有获得锁的调度器对应的延迟时间越长。

11、根据本发明提供的一种搬运任务调度方法,所述搬运任务调度方法还包括:

12、当任一调度器由任务执行状态转为空闲状态时,基于调度表中已调度任务的调度开始时间和调度结束时间以及所述已调度任务对应的调度器,预测所述任一调度器的潜在竞争调度器;其中,所述调度表中所述已调度任务的调度开始时间是相应调度器成功获取到所述已调度任务的分布式锁后写入的,已调度任务的调度结束时间是相应调度器处理完所述已调度任务的调度工作后写入的;

13、基于所述搬运任务队列中的未调度任务,确定所述任一调度器的潜在竞争调度器对应的当前待申请任务,并基于所述任一调度器的潜在竞争调度器对应的当前待申请任务,确定所述任一调度器对应的当前待申请任务;

14、基于所述任一调度器针对对应的当前待申请任务向服务器申请分布式锁,并在所述任一调度器成功申请到对应的当前待申请任务的分布式锁后,基于所述任一调度器执行对应的当前待申请任务的调度工作。

15、根据本发明提供的一种搬运任务调度方法,所述基于调度表中已调度任务的调度开始时间和调度结束时间以及所述已调度任务对应的调度器,预测所述任一调度器的潜在竞争调度器,具体包括:

16、从所述调度表中查找有调度开始时间且没有调度结束时间的已调度任务对应的调度器,作为筛选调度器;

17、确定所述多个调度器中除所述筛选调度器以及所述任一调度器以外的调度器,作为所述任一调度器的潜在竞争调度器。

18、根据本发明提供的一种搬运任务调度方法,所述基于所述搬运任务队列中的未调度任务,确定所述任一调度器的潜在竞争调度器对应的当前待申请任务,并基于所述任一调度器的潜在竞争调度器对应的当前待申请任务,确定所述任一调度器对应的当前待申请任务,具体包括:

19、基于所述任一调度器的潜在竞争调度器的数量,确定所述搬运任务队列中优先级最高的相应数量的未调度任务,作为所述任一调度器的潜在竞争调度器对应的当前待申请任务;

20、将所述搬运任务队列中所述任一调度器的潜在竞争调度器对应的当前待申请任务之后的第一个未调度任务确定为所述任一调度器对应的当前待申请任务。

21、根据本发明提供的一种搬运任务调度方法,当任一调度器成功申请到对应的当前待申请任务的分布式锁后,所述搬运任务调度方法还包括:

22、实时检测所述调度表,若任一已调度任务存在调度开始时间且不存在调度结束时间,且当前时间与所述任一已调度任务的调度开始时间之间的时间差大于预设调度处理时间,则向所述任一已调度任务对应的调度器发送释放锁请求,使得所述任一已调度任务对应的调度器释放相应的分布式锁;

23、在所述任一已调度任务对应的调度器释放相应的分布式锁后,将所述任一已调度任务从所述调度表中删除。

24、本发明还提供一种搬运任务调度装置,包括:

25、搬运任务同步单元,用于将搬运任务队列同步至多个调度器;所述搬运任务队列中存储了按照执行优先级由大到小排列的多个搬运任务;

26、分布式锁申请单元,用于基于所述多个调度器针对所述搬运任务队列中的第一个搬运任务向服务器申请分布式锁,确定当前成功获得锁的调度器和当前没有获得锁的调度器;基于所述当前成功获得锁的调度器,执行所述第一个搬运任务的调度工作;针对各个当前没有获得锁的调度器,基于所述各个当前没有获得锁的调度器与服务器之间的实时网络延迟,确定所述搬运任务队列中所述各个当前没有获得锁的调度器各自对应的当前待申请任务,基于所述各个当前没有获得锁的调度器针对各自对应的当前待申请任务向服务器申请分布式锁,并在任一所述当前没有获得锁的调度器成功申请到对应的当前待申请任务的分布式锁后,基于相应调度器执行对应的当前待申请任务的调度工作。

27、根据本发明提供的一种搬运任务调度装置,所述分布式锁申请单元还用于:

28、当任一调度器由任务执行状态转为空闲状态时,基于调度表中已调度任务的调度开始时间和调度结束时间以及所述已调度任务对应的调度器,预测所述任一调度器的潜在竞争调度器;其中,所述调度表中所述已调度任务的调度开始时间是相应调度器成功获取到所述已调度任务的分布式锁后写入的,已调度任务的调度结束时间是相应调度器处理完所述已调度任务的调度工作后写入的;

29、基于所述搬运任务队列中的未调度任务,确定所述任一调度器的潜在竞争调度器对应的当前待申请任务,并基于所述任一调度器的潜在竞争调度器对应的当前待申请任务,确定所述任一调度器对应的当前待申请任务;

30、基于所述任一调度器针对对应的当前待申请任务向服务器申请分布式锁,并在所述任一调度器成功申请到对应的当前待申请任务的分布式锁后,基于所述任一调度器执行对应的当前待申请任务的调度工作。

31、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述搬运任务调度方法。

32、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述搬运任务调度方法。

33、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述搬运任务调度方法。

34、本发明提供的一种搬运任务调度方法、装置、电子设备和存储介质,通过将搬运任务队列同步至多个调度器,基于多个调度器针对搬运任务队列中的第一个搬运任务向服务器申请分布式锁,确定当前成功获得锁的调度器和当前没有获得锁的调度器,基于当前成功获得锁的调度器,执行第一个搬运任务的调度工作,针对各个当前没有获得锁的调度器,基于各个当前没有获得锁的调度器与服务器之间的实时网络延迟,确定搬运任务队列中各个当前没有获得锁的调度器各自对应的当前待申请任务,基于各个当前没有获得锁的调度器针对各自对应的当前待申请任务向服务器申请分布式锁,并在任一当前没有获得锁的调度器成功申请到对应的当前待申请任务的分布式锁后,基于相应调度器执行对应的当前待申请任务的调度工作,可以确保不同调度器申请不同的搬运任务的分布式锁,并且保证搬运任务的执行顺序符合预期,在维护数据一致性的前提下降低申请锁失败的概率,提升了任务并发性和调度效率。


技术特征:

1.一种搬运任务调度方法,其特征在于,包括:

2.根据权利要求1所述的一种搬运任务调度方法,其特征在于,所述基于所述各个当前没有获得锁的调度器与服务器之间的实时网络延迟,确定所述搬运任务队列中所述各个当前没有获得锁的调度器各自对应的当前待申请任务,基于所述各个当前没有获得锁的调度器针对各自对应的当前待申请任务向服务器申请分布式锁,具体包括:

3.根据权利要求1所述的一种搬运任务调度方法,其特征在于,所述搬运任务调度方法还包括:

4.根据权利要求3所述的一种搬运任务调度方法,其特征在于,所述基于调度表中已调度任务的调度开始时间和调度结束时间以及所述已调度任务对应的调度器,预测所述任一调度器的潜在竞争调度器,具体包括:

5.根据权利要求3所述的一种搬运任务调度方法,其特征在于,所述基于所述搬运任务队列中的未调度任务,确定所述任一调度器的潜在竞争调度器对应的当前待申请任务,并基于所述任一调度器的潜在竞争调度器对应的当前待申请任务,确定所述任一调度器对应的当前待申请任务,具体包括:

6.根据权利要求3所述的一种搬运任务调度方法,其特征在于,当任一调度器成功申请到对应的当前待申请任务的分布式锁后,所述搬运任务调度方法还包括:

7.一种搬运任务调度装置,其特征在于,包括:

8.根据权利要求7所述的一种搬运任务调度装置,其特征在于,所述分布式锁申请单元还用于:

9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述一种搬运任务调度方法。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一种搬运任务调度方法。


技术总结
本发明提供一种搬运任务调度方法、装置、电子设备和存储介质,基于多个调度器针对搬运任务队列中的第一个搬运任务向服务器申请分布式锁,确定当前成功获得锁的调度器和当前没有获得锁的调度器,基于当前成功获得锁的调度器,执行第一个搬运任务的调度工作,基于各个当前没有获得锁的调度器与服务器之间的实时网络延迟,确定搬运任务队列中各个当前没有获得锁的调度器各自对应的当前待申请任务,基于各个当前没有获得锁的调度器针对各自对应的当前待申请任务向服务器申请分布式锁,并在任一当前没有获得锁的调度器成功申请到对应的当前待申请任务的分布式锁后,基于相应调度器执行对应的当前待申请任务的调度工作,提升了任务并发性和调度效率。

技术研发人员:王瑞骥,余君山
受保护的技术使用者:华芯智上半导体设备(上海)有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1150227.html

最新回复(0)