微信(2)
- 您所在的用户组无法下载或查看附件
作为现在手机上使用最广泛的软件之一----微信,我们可以挖掘出很多的需求,当然,对于一个基本只会用扣扣的土包子,我就假装自己很明白你们的需求,这次我要做的是微信的发信息到朋友圈和打招呼的功能,当然,功能本身不重要,重要的是实现的方法。(本节文字略多,但全是干货,请不要略过)
- 您所在的用户组无法下载或查看附件
上一节我们讲了如何进行任务的管理,这次咱要说的是就是任务的制作姿势,确认功能之后的脚本最重要的两个因素,无非就是稳定性和效率,前者要优先于后者。
先说稳定性,我们已经有完整的任务管理机制和数据来记录用户的完成情况,因此任务无论完成与否,最后都会反映到数据的变化上,即使没有完成,下一次的任务管理也会继续的分配这一任务。因此我们需要为任务进行一定的超时机制,并在任务的执行时间内,能强制结束此任务。(好吧,又是多线程来了!)
直接看代码:
- 您所在的用户组无法下载或查看附件
我们把真正的任务进行放到一个线程中,在线程后加上一个Do循环,通过共享变量来侦查脚本的运行状态,如果脚本正常进行,会将“任务计时重置”设定为ture,Do循环内识别到,就重置超时时间。当任务线程将“任务结束标志”设定为true的时候,证明此任务已经做完,就可以退出这个Do循环了。
如果在中间任务超过一定的时间没有反馈,就会启动超时处理的函数,我们可以直接强制结束任务(停掉任务线程),并进行一系列操作(检测状态,或者直接重启)。
以朋友圈发消息为例,当超时之后,我只需要结束这个任务,等待下次分配即可。
解决了稳定性的因素,我们再来看看效率的问题,第一个肯定就是脚本的延时,越短的延时脚本的处理速度越快,第二个就是步骤的优化,我们假设一个任务有5个步骤,分别对应了5个界面,那么我们是否可以在一开始检测一次界面,比如检测到在第三个,我们是否可以直接进行3、4、5三个步骤,而不是先回到第一个步骤再往下运行呢?来看看例子:
- 您所在的用户组无法下载或查看附件
这是朋友圈发消息的进程,我们先判定一次界面,根据返回值来决定处理的方式,代码中我们判定为“首页”的时候,步骤中就省了一步回到首页的操作,如果判定界面在朋友圈内,我们又可以节约点击发现和点击朋友圈两个操作。(咳咳,之所以图中没有,咳咳,懒癌晚期你懂的~)。
优雅的处理方式带来赏心悦目的体验,学会并使用吧!
- 您所在的用户组无法下载或查看附件