一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于CocoaPods的打包任务处理方法、装置和电子设备与流程

2022-07-02 12:09:20 来源:中国专利 TAG:

一种基于cocoapods的打包任务处理方法、装置和电子设备
技术领域
1.本发明涉及ios系统软件开发领域,具体涉及一种基于cocoapods的打包任务处理方法、装置和电子设备。


背景技术:

2.在进行ios系统的软件开发的时,难免使用第三方的依赖库,比如sbjson、afnetworking、reachability等。使用这些库的时候通常需要下载依赖库中的代码并引入开发工程。目前,最常用的管理第三方依赖库的工具是cocoapods,通过该工具配置打包机程序,然后对某一分支进行打包,打包过程主要分为三部分,一部分是执行git pull指令拉取不依赖于cocoapods的壳工程代码,另一部分执行pod update指令拉取依赖于cocoapods的第三方代码,最后通过打包脚本构建app。但是在执行pod update的过程中,如果开发人员点击取消此次打包操作,或者因其他原因中断此pod update过程,很容易导致pods文件夹(相当于打包生成应用程序的路径文件夹)中的组件缺少部分代码而成为问题代码。从而导致后续其他开发人员再对此分支进行打包,必然出现打包失败的情况。
3.现有技术在发现打包失败后,先通过分析错误日志,定位到pods问题,然后手动删除原pods文件夹,再重新对此分支执行pod update指令来解决此问题。但是这种后知后觉的分析定位,再去解决问题的处理方式,大大增加了处理问题的时间和成本。


技术实现要素:

4.有鉴于此,本发明实施方式提供了一种基于cocoapods的打包任务处理方法、装置和电子设备,从而预防了由于打包中断导致后续打包失败的情况。
5.根据第一方面,本发明实施例提供了一种基于cocoapods的打包任务处理方法,应用于打包机,所述方法包括:在对目标分支执行pod update指令时,在当前打包任务的任务日志中添加对应的pod update标识;当接收到取消所述当前打包任务的取消指令时,判断所述任务日志中是否存在pod update标识;若所述任务日志中存在pod update标识,则忽略所述取消指令。
6.可选地,所述方法还包括:当所述目标分支依赖的代码打包完成时,删除所述任务日志中的所述pod update标识。
7.可选地,所述方法还包括:每经过预设时间间隔重新判断所述任务日志中是否存在pod update标识;直至所述任务日志中不存在pod update标识时,按照所述取消指令,取消所述当前打包任务。
8.可选地,在所述每经过预设时间间隔重新判断所述任务日志中是否存在pod update标识之前,所述方法还包括:判断等待时间是否大于预设阈值,所述等待时间是从第一次判断所述任务日志中是否包含pod update标识的时刻到当前时刻的时间长度;若所述等待时间大于预设阈值,则按照所述取消指令取消所述当前打包任务。
9.可选地,若所述等待时间大于预设阈值,所述方法还包括:删除打包路径中生成的
目标文件夹。
10.可选地,若所述等待时间大于预设阈值,所述方法还包括:发送和/或展示具有等待时间的告警信息到预设电子设备。
11.根据第二方面,本发明实施例提供了一种基于cocoapods的打包任务处理装置,应用于打包机,所述装置包括:标识写入模块,用于在对目标分支执行pod update指令时,在当前打包任务的任务日志中添加对应的pod update标识;标识查询模块,用于当接收到取消所述当前打包任务的取消指令时,判断所述任务日志中是否存在pod update标识;任务保持模块,用于若所述任务日志中存在pod update标识,则忽略所述取消指令。
12.可选地,所述装置还包括:标识删除模块,用于当所述目标分支的代码打包完成时,删除所述任务日志中的所述pod update标识。
13.根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
14.根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
15.本技术提供的技术方案,具有如下优点:
16.本技术提供的技术方案,通过对pod update指令进行监控,当判断开始执行pod update时,在打包任务的任务日志中添加pod update标识,表征当前正在进行打包操作。在此过程中,一旦接收到用户或者其他程序发送的取消指令,先判断任务日志中,是否包含pod update标识,若存在pod update标识,则打包机暂时无视收到的取消指令,继续进行目标分支的代码打包工作。从而避免了执行pod update的过程中断,提前预防了由于打包中断导致pods文件夹中的组件缺少部分代码而成为问题代码的情况。
17.此外,在另一实施例中,打包机在接收到取消指令后,打包机对任务日志中是否包含pod update标识进行周期性的判断。当目标分支依赖的代码打包完成时,删除任务日志中的pod update标识。基于此,在任务日志中不存在pod update标识时,打包机按照第一次接收到的取消指令,取消当前打包任务。一方面自动延长了响应取消打包任务指令的动作,另一方面,还可以在pod update完成时自动响应第一次接收到的取消打包任务指令,无需人工持续跟踪。此外,当打包任务的持续时间达到预设阈值时,打包机自动中断此次打包任务,并删除相关的pods文件夹,后续再执行此分支的打包任务时,可通过重新pod update获取pods文件夹完整的代码,从而避免之前因pod update被中断导致的pods文件夹中部分代码缺失,进而导致的打包失败。
附图说明
18.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
19.图1示出了本发明一个实施方式中一种基于cocoapods的打包任务处理方法的步骤示意图;
20.图2示出了本发明一个实施方式中一种基于cocoapods的打包任务处理方法的流程示意图;
21.图3示出了本发明一个实施方式中一种基于cocoapods的打包任务处理装置的结构示意图;
22.图4示出了本发明一个实施方式中一种电子设备的结构示意图。
具体实施方式
23.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
24.请参阅图1和图2,在一个实施方式中,一种基于cocoapods的打包任务处理方法,应用于打包机,具体包括以下步骤:
25.步骤s101:在对目标分支执行pod update指令时,在当前打包任务的任务日志中添加对应的pod update标识。
26.步骤s102:在接收到取消当前打包任务的取消指令时,判断任务日志中是否存在pod update标识。
27.步骤s103:在任务日志中存在pod update标识时,忽略取消指令。
28.具体地,在对目标分支进行打包生成应用程序时,打包机程序首先从各个依赖库中拉取新版本的代码,并创建任务日志文件。之后,在开始执行pod update指令时,向任务日志文件中写入正在执行pod update的pod update标识,用于表示正在执行pod update指令。例如写入标志位is_pod_updating(存在该标志位表示正在打包)或者写入updating=1(1表示正在打包,0表示未在打包)。本发明并不以此为限。假设开发人员在打包机界面上点击了取消打包按键,打包机接收到取消正在进行的打包任务的指令时,首先从任务日志文件中判断是否存在表示正在执行pod update的pod update标识“is_pod_updating”。如果任务日志文件中不存在标志位is_pod_updating,说明打包机并未正在执行pod update操作,打包机正在无操作运行中,此时执行取消打包任务即取消打包机的运行是安全的,从而执行取消此次打包任务的逻辑。如果任务日志文件中存在pod update标识,说明正在执行pod update操作,打包机自动忽视接收到的取消pod update指令。避免出现打包突然中断的情况,从而预防了由于打包中断导致pods文件夹中的组件缺少部分代码而成为问题代码的情况。
29.具体地,在一实施例中,本发明实施例提供的一种基于cocoapods的打包任务处理方法,还包括如下步骤:
30.步骤一:当目标分支依赖的代码打包完成时,删除任务日志中的pod update标识。
31.步骤二:每经过预设时间间隔重新判断任务日志中是否存在pod update标识;
32.步骤三:直至任务日志中不存在pod update标识时,按照取消指令,取消当前打包任务。
33.具体地,在本实施例中,当打包机执行完pod update指令后,打包机程序还在进程
中,此时将任务日志文件中的pod update标识删除,以此表示并未处于pod update执行过程中。在本实施例中,对任务日志中是否包含pod update标识的判定操作,不仅在第一次接收到取消指令时判断,还连续进行周期性的判断,例如每一秒判断一次。基于此,在任务日志中不存在pod update标识时,打包机可以按照第一次接收到的取消指令,取消当前打包任务。实现了自动延长响应取消指令的响应时间,不仅保证了打包任务不被中断,还无需人员进行连续跟踪,在打包完成时自动结束程序,降低研发人员的时间成本。
34.具体地,在一实施例中,在上述步骤二之前,还包括如下步骤:
35.步骤四:判断等待时间是否大于预设阈值,等待时间是从第一次判断任务日志中是否包含pod update标识的时刻到当前时刻的时间长度;
36.步骤五:若等待时间大于预设阈值,则按照取消指令取消当前打包任务。
37.具体地,本实施例在周期性判断任务日志是否包含pod update标识的过程中,还进行等待时间的统计,从而避免打包任务陷入死循环。例如:从第一次判定动作开始,如果任务日志文件中存在pod update标识,说明正在执行pod update操作,则需等待1秒,并对等待时间进行自加,然后再将等待时间与预设阈值进行比较,例如预设阈值为100秒。如果等待时间《=预设阈值,则需要在下次判定pod update标识是否存在于任务日志之前,再执行本步骤判定等待时间,如果等待时间》预设阈值,则说明在预设定的最大等待时间范围内,并不能等待pod update完成(可能因为网络等各种其他原因)。需要执行取消此次正在执行的打包任务逻辑,打包机自动中断,避免打包机程序陷入死循环。
38.具体地,在一实施例中,当等待时间大于预设阈值时,打包机还删除打包路径中生成的目标文件夹。具体地,由于此次任务pod update未完成,pods文件夹中文件不完整,还需要自动删除pods文件夹,从而不会影响后续的打包任务。
39.具体地,在一实施例中,当等待时间大于预设阈值时,打包机还需要发送或者展示告警信息到预设的电子设备中,以通知开发人员当前打包失败的任务的具体等待时间,开发人员通过分析告警信息,可对等待时间的预设阈值进行合适的修改优化,从而获取最优的预设阈值,避免用户等待时间过长,提高打包任务处理的效率。
40.通过上述全部措施的结合可以保证pod update指令执行的过程不被终止,从而避免了因pod update被终止而导致的打包失败。即使因超过预设定的最大等待时间范围而执行取消任务逻辑,也会因通过自动删除pods文件夹,来避免其他开发人员再次打包时因pods文件夹中的问题代码而导致的打包失败。
41.具体地,以一个具体地实施例对上述步骤进行说明:
42.假设自如客app的某一开发分支通过轮询发现第三方依赖库具有新版本,需要进行应用程序更新。首先通过打包机程序从第三方依赖库拉取新版本代码,然后创建任务日志,之后开始执行pods update指令执行打包任务,在执行pods update指令的初期将pod update标识is_pod_updateing加入到任务日志中。在此过程中,打包机收到了用户输入的取消指令,打包机获取当前打包任务的任务日志,并在任务日志中搜索是否包含is_pod_updateing。假设打包机发现任务日志中包括is_pod_updateing,则暂时搁置取消指令,不进行响应动作,并且打包机每隔1秒会在任务日志中进行重新搜索。在经过了一段时间之后,pods update指令执行完成,依赖库更新完毕,打包机将任务日志中的pod update标识删除。在下一次搜索时,发现任务日志中已经不存在pod update标识,打包机开始响应一段
时间之前接收到的取消指令,结束当前打包任务。
43.在另一实施例中,在经过了一段时间后,打包机每次搜索任务日志中的pod update标识,发现该标识依然存在,并且经过的时间已经超过了预设阈值,系统判定当前任务可能由于网络等原因无法继续进行。为了避免浪费时间,中断此次打包任务,并且删除打包路径中的pods文件夹,发送告警信息给研发人员。其他研发人员再次对当前分支进行更新时,重新执行上述更新逻辑,并不会由于本次打包失败而影响其他研发人员的打包操作。
44.通过上述步骤,本技术提供的技术方案,通过对pod update指令进行监控,当判断开始执行pod update时,在打包任务的任务日志中添加pod update标识,表征当前正在进行打包操作。在此过程中,一旦接收到用户或者其他程序发送的取消指令,先判断任务日志中,是否包含pod update标识,若存在pod update标识打包机暂时无视收到的取消指令,继续进行目标分支的代码打包工作。从而避免了执行pod update的过程中断,提前预防由于打包中断导致pods文件夹中的组件缺少部分代码而成为问题代码。
45.此外,在另一实施例中,打包机在接收到取消指令后,打包机对任务日志中是否包含pod update标识进行周期性的判断。当目标分支依赖的代码打包完成时,删除任务日志中的pod update标识。基于此,在任务日志中不存在pod update标识时,打包机按照第一次接收到的取消指令,取消当前打包任务。一方面自动延长了响应取消打包任务指令的动作,另一方面,还可以在pod update完成时自动响应第一次接收到的取消打包任务指令,无需人工持续跟踪。此外,当延迟pod update执行直至达到最大等待时间时,打包机自动中断此次打包任务,并删除相关的pods文件夹,后续再执行此分支的打包任务时,可通过重新pod update获取pods文件夹完整的代码,从而避免之前因pod update中断导致的pods文件夹中部分代码缺失,进而导致的打包失败问题。
46.如图3所示,本实施例还提供了一种基于cocoapods的打包任务处理装置,应用于打包机,装置包括:
47.标识写入模块101,用于在对目标分支执行pod update指令时,在当前打包任务的任务日志中添加对应的pod update标识。详细内容参见上述方法实施例中步骤s101的相关描述,在此不再进行赘述。
48.标识查询模块102,用于在接收到取消当前打包任务的取消指令时,判断任务日志中是否存在pod update标识。详细内容参见上述方法实施例中步骤s102的相关描述,在此不再进行赘述。
49.任务保持模块103,用于在任务日志中存在pod update标识时,忽略取消指令。详细内容参见上述方法实施例中步骤s103的相关描述,在此不再进行赘述。
50.具体地,在一实施例中,本实施例提供的一种基于cocoapods的打包任务处理装置,还包括:
51.标识删除模块,用于当所述目标分支依赖的代码打包完成时,删除所述任务日志中的所述pod update标识。详细内容参见上述方法实施例中步骤一的相关描述,在此不再进行赘述。
52.本发明实施例提供的代码打包任务处理装置,用于执行上述实施例提供的代码打包任务处理方法,其实现方式与原理相同,详细内容参见上述方法实施例的相关描述,不再赘述。
53.通过上述各个组成部分的协同合作,本技术提供的技术方案,通过对pod update指令进行监控,当判断开始执行pod update时,在打包任务的任务日志中添加pod update标识,表征当前正在进行打包操作。在此过程中,一旦接收到用户或者其他程序发送的取消指令,先判断任务日志中,是否包含pod update标识,若存在pod update标识打包机暂时无视收到的取消指令,继续进行目标分支的代码打包工作。从而避免了执行pod update的过程中断,提前预防由于打包中断导致pods文件夹中的组件缺少部分代码而成为问题代码。
54.此外,在另一实施例中,打包机在接收到取消指令后,打包机对任务日志中是否包含pod update标识进行周期性的判断。当目标分支依赖的代码打包完成时,删除任务日志中的pod update标识。基于此,在任务日志中不存在pod update标识时,打包机按照第一次接收到的取消指令,取消当前打包任务。一方面自动延长了响应取消打包任务指令的动作,另一方面,还可以在pod update完成时自动响应第一次接收到的取消打包任务指令,无需人工持续跟踪。此外,当延迟pod update执行直至达到最大等待时间时,打包机自动中断此次打包任务,并删除相关的pods文件夹,后续再执行此分支的打包任务时,可通过重新pod update获取pods文件夹完整的代码,从而避免之前因pod update被中断导致的pods文件夹中部分代码缺失,进而导致的打包失败。
55.图4示出了本发明实施例的一种电子设备,该设备包括处理器901和存储器902,可以通过总线或者其他方式连接,图4中以通过总线连接为例。
56.处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
57.存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
58.存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
59.一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
60.上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
61.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光
盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
62.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献