System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据处理,尤其涉及一种多进程文件分发的方法及装置。
技术介绍
1、相关技术中,目前配置分发系统已经由最初的单指令下发改造为多指令集批量下发模式,极大的提高了分发效率。但是对于每个agent节点中每一次指令集中的多文件下发,为了保证文件下发的安全性,一致性,历史记录可追溯性及指令集的原子性,需要对每个指令集中的文件下发类型进行文件的提前备份,如果有任何一条指令集执行失败,都需要对前面已经修改的文件进行回滚(包括文件内容和文件归属用户组)。在此情况下,在多进程多指令集包含相同文件的下发过程中,会出现文件被错误地修改或覆盖的情况以及会出现不同进程对同一个文件进行不同的操作导致数据不一致的问题。因此如何更好地实现文件下发成为亟待解决的问题。
技术实现思路
1、鉴于以上现有技术的不足,专利技术的目的在于提供一种多进程文件分发的方法及装置,该方法通过原子锁和文件链路集合锁的使用,有效地控制了多个任务进程对相同文件的并发访问,避免了因同时读写同一文件而导致的数据不一致或损坏。
2、本专利技术的第一方面,提出了一种多进程文件分发的方法,包括:s1,获取多个任务进程接收的多个指令集;s2,所述多个指令集中存在相同文件的情况下,确定具有所述相同文件的目标指令集,其中所述目标指令集包括多个,每个指令集均对应任务进程;s3,对所述目标指令集中任一指令集中的文件路径进行解析,得到文件集合,在获取所述文件集合的原子锁成功的情况下,获取所述文件集合的文件链路集合锁且其他任务进程不进行对
3、进一步地,对所述目标指令集中任一指令集中的文件路径进行解析,得到文件集合,包括:对所述目标指令集中任一指令集中的文件路径进行解析,对解析后的每个所述文件路径进行加密,得到所述文件集合。
4、进一步地,所述方法还包括:在得到所述文件集合的情况下,对所述文件集合进行加锁,得到所述文件集合的唯一标识;其中,获取所述文件集合的原子锁成功,包括:根据所述唯一标识对所述文件集合进行解锁;在解锁成功的情况下,确定获取所述文件集合的原子锁成功。
5、进一步地,所述方法还包括:在获取所述文件集合的原子锁失败的情况下,在预设时间内,重新获取所述文件集合的原子锁;超过所述预设时间仍未成功获取所述文件集合的原子锁的情况下,确定任务执行失败。
6、进一步地,在获取所述文件集合的原子锁成功的情况下,获取所述文件集合的文件链路集合锁,包括:在获取所述文件集合的原子锁成功的情况下,检测所述文件集合中的文件是否均未被其他任务进程加锁;在确定所述文件集合中存在加锁文件的情况下,在预设时间内,等待其他任务进程对所述加锁文件的锁进行释放;在所述加锁文件的锁释放完成的情况下,当前任务进程对所述未加锁文件进行加锁,得到所述文件集合的文件链路集合锁。
7、进一步地,确定获取所述文件集合的文件链路集合锁成功,包括:判断所述文件集合中全部文件的锁是否获取成功;在所述文件集合中全部文件的锁获取成功的情况下,确定获取所述文件集合的文件链路集合锁成功。
8、进一步地,待所述文件集合中的全部任务执行完成的情况下,所述文件集合的文件链路集合锁进行释放,包括:确定所述文件集合中执行成功或执行失败的任务;基于所述执行成功或所述执行失败的任务,依次将所述文件集合的文件链路集合锁进行释放。
9、本专利技术的第二方面,提出了一种多进程文件分发的装置,包括:获取模块,用于获取多个任务进程接收的多个指令集;确定模块,用于所述多个指令集中存在相同文件的情况下,确定具有所述相同文件的目标指令集,其中所述目标指令集包括多个,每个指令集均对应任务进程;得到模块,用于对所述目标指令集中任一指令集中的文件路径进行解析,得到文件集合,在获取所述文件集合的原子锁成功的情况下,获取所述文件集合的文件链路集合锁且其他任务进程不进行对所述文件集合的加锁操作;执行模块,用于在确定获取所述文件集合的文件链路集合锁成功的情况下,将所述文件集合的原子锁进行释放,且执行所述文件集合中的任务,待所述文件集合中的全部任务执行完成的情况下,所述文件集合的文件链路集合锁进行释放;操作模块,用于在所述文件集合的文件链路集合锁释放完成的情况下,对所述目标指令集中其他指令集进行操作。
10、本专利技术的第三方面,提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术第一方面中任一项所述的方法。
11、本专利技术的第四方面,提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本专利技术第一方面中任一项所述的方法。
12、本专利技术有益效果如下:
13、本专利技术所述的多进程文件分发的方法及装置,获取多个任务进程接收的多个指令集;多个指令集中存在相同文件的情况下,确定具有相同文件的目标指令集,其中目标指令集包括多个,每个指令集均对应任务进程;对目标指令集中任一指令集中的文件路径进行解析,得到文件集合,在获取文件集合的原子锁成功的情况下,获取文件集合的文件链路集合锁且其他任务进程不进行对文件集合的加锁操作;在确定获取文件集合的文件链路集合锁成功的情况下,将文件集合的原子锁进行释放,且执行文件集合中的任务,待文件集合中的全部任务执行完成的情况下,文件集合的文件链路集合锁进行释放;在文件集合的文件链路集合锁释放完成的情况下,对目标指令集中其他指令集进行操作。该方法通过原子锁和文件链路集合锁的使用,有效地控制了多个任务进程对相同文件的并发访问,避免了因同时读写同一文件而导致的数据不一致或损坏,通过锁定机制确保了在任一时刻只有一个任务进程可以修改共享文件,这减少了因并发修改引发的错误和系统崩溃的风险,提高了系统的稳定性,实现了在多任务进程环境中确保对共享资源的访问是安全、有序且高效的,从而提高了系统的并发性能和稳定性。
本文档来自技高网...【技术保护点】
1.一种多进程文件分发的方法,其特征在于,包括:
2.根据权利要求1所述的多进程文件分发的方法,其特征在于,对所述目标指令集中任一指令集中的文件路径进行解析,得到文件集合,包括:
3.根据权利要求1所述的多进程文件分发的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的多进程文件分发的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的多进程文件分发的方法,其特征在于,在获取所述文件集合的原子锁成功的情况下,获取所述文件集合的文件链路集合锁,包括:
6.根据权利要求1所述的多进程文件分发的方法,其特征在于,确定获取所述文件集合的文件链路集合锁成功,包括:
7.根据权利要求1所述的多进程文件分发的方法,其特征在于,待所述文件集合中的全部任务执行完成的情况下,所述文件集合的文件链路集合锁进行释放,包括:
8.一种多进程文件分发的装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述
...【技术特征摘要】
1.一种多进程文件分发的方法,其特征在于,包括:
2.根据权利要求1所述的多进程文件分发的方法,其特征在于,对所述目标指令集中任一指令集中的文件路径进行解析,得到文件集合,包括:
3.根据权利要求1所述的多进程文件分发的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的多进程文件分发的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的多进程文件分发的方法,其特征在于,在获取所述文件集合的原子锁成功的情况下,获取所述文件集合的文件链路集合锁,包括:
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。