希望增加动作的同步/异步控制(执行队列)

功能建议 · 677 次浏览
尼古丁真 创建于 2023-11-06 10:12

期望的结果:使用动作队列,不同动作之间可以按照顺序执行,防止相互干扰。

实现思路:类似这个子程序https://getquicker.net/subprogram?id=c8398ae9-8390-497d-12a7-08dbbe5b3358,我的想法是提供一个动作队列功能,前一个动作执行完毕再执行下一个动作。

关于配置方式呢,可以让动作本身带有布尔参数【是否队列执行】,或者直接添加一个【执行方式】参数选项:

  • 独立执行,即现在的多线程形式
  • 插队执行,插队发到队列最前面,下一个动作执行它
  • 排队执行,放在队列最后面按序执行

也可以让执行动作的操作(轮盘、手势等)带有选项,或者两者都带有选项,执行操作的队列选项覆盖动作本身的队列选项(多一个【默认】调用动作本身的设置)。

 

实际的场景是:我需要在解锁后自动重新登录微信和TIM(被顶掉登录后重登)

但是遇到一个问题,两个动作在解锁时同时执行,激活微信的下线通知窗口点“确定”时候,TIM消息通知窗口也激活执行点击,会直接判定为点击TIM的“修改密码”,然后两个动作都会执行失败(虽然微信点击判断为成功了)。

调整不同的执行延迟可以解决,但是延迟多久是一个问题,另一个问题是必须额外创建另一个任务来整合,而且只能治标(出现问题后创建整合动作)不能治本。

然后搜索排队执行,找到上面那个动作,不过不知道为什么我使用了却没有用(加了延时也没成功):

但是放在一个新的动作里,就可以正常运行:

希望可以评估一下实现这个功能的难度和所需时间决定是否去做,现在也能用只是不那么方便,至于要不要提供队列内容获取/修改功能,那就是更深入的层次了……


回复内容
CL 2023-11-06 17:34
#1

这个场景比较少,开发成本相对比较高而且使得程序变得更复杂,所以不考虑了。 可以直接在同一个动作里实现序列步骤或按顺序调用其他动作。

尼古丁真 回复 CL 2023-11-06 17:49 :

也好,不值得的话就不去做,自己花点功夫也能解决

回复主贴