作者|我是奔跑的键盘侠
来源|奔跑的键盘侠(ID:runningkeyboardhero)
上一期的这个大饼,那今天就来讲一下里面的定时器,虽然名字叫定时器,看着好似很牛逼,其实就是一个循环逻辑,仅此而已。
1
定时器剖析
每个人自动办公的实际场景千变万化,要实现实时刷新(订单、客服对话等)处理任务,就需要一个循环的逻辑,完成一个任务后,继续完成下一个,而不是运行完一圈按快捷键再次启动脚本。
于是我们需要结合实际的场景,来设计一个循环的逻辑。
举个例子,处理实时订单,可以用for循环,检测一千次就for 1000,上不封顶。如果闲时循环需要1分钟,那一小时可循环60次,一天也不过1440次,仅此而已。
不过呢,很多时候,我们喜欢人工干预一下、手动去停止脚本,除了for循环次数设置大一点外,还可以用While True或者Do Loop这类可以无限循环的命令,看个人喜好吧。
如果要更精进一点,比如每天定时运行到17点,就可以在无限循环中,加一个flag,通过flag值的变化,来决定是否退出脚本或者做其他指令。
2
实现代码
最近没时间上windows设备调试代码,就简单罗列一下关键部分,大家可以自行尝试。
代码语言:javascript复制//定时关机的循环
flag = false
Do
…………
…………
If time > "17:00:00" Then
flag = true
EndIf
If flag = True Then
Call 关机()
EndIf
Loop
Fuction 关机()
RunApp "cmd"
…………
return true
EndFuction
3
延伸扩展
如果要更进一步,就要考虑配置表或者界面了,方便维护代码。比如某一天,你突然觉得循环次数要调整,抑或是要修改自动关机时间,我们不建议直接切换到代码行中改代码。
为什么?因为很可能因为一个误操作,导致几百上千行的代码,没法运行了。
于是,我们需要一个良好的习惯,当然也并不局限于前面说的两种思路,你也可以先做好备份,然后再去改源代码,万一挂掉了还可以复原。
另外,每次改动代码,记得要做好手册说明,某年某月某日,更新了什么功能,刚开始可能感觉不到什么卵用。但是当你过了几年更新了十几个版本后,再回头来总结或者重构脚本,这个手册里记录的功能细节,定有妙用。
配置表:
无非就是做个txt或者其他格式的文档,一般格式就是:
循环次数:10000
刷新订单时间间隔(ms):1000
是否自动关机:是
关机时间:18:00:00
日志存盘目录:D:document
异常推送qq号码:123456
运行情况反馈邮箱:123456@qq.com
任何有可能修改的参数,你都可以把它记录到这个配置表里面,然后通过文本读取来获取变量值。某天,如果你要去修改,打开这个txt文档,直接修改即可。
界面:
网上随便找了个示例供大家参考:
看到这个示例,想必大家也就清晰了,其实跟配置表大同小异,可以在界面上对应的位置直接修改,你甚至可以分享给完全不懂按键的小伙伴使用。
4
配置表的读取使用问题
最后再啰嗦一下,配置表怎么用,通过文本读写来获取,如果读取这类固定值的参数,在脚本的开头读取一次即可,不需要用一个重新读一次。
如果配置表是实时更新、需要读取最新值的,文本读写都要3行代码起步(打开冰箱,取出大象,关上门),会显得很繁琐,可以将读写直接封装成函数,一行代码即可解决繁赘的问题。
代码略……
-END-