回答
文档地址 https://docs.hamibot.com/
控制台的定时功能与通过 timers
模块实现的定时功能本质区别在于执行机制和作用范围:
-
执行机制
- 控制台定时功能:通过 Hamibot 应用的界面设置,属于 系统级定时任务。这类定时任务由 Android 系统服务(如 AlarmManager)驱动,即使脚本未运行或设备休眠也能触发,独立于脚本主线程。
timers
模块:基于 JavaScript 线程内的定时器,依赖脚本主线程的 Looper-Handler 消息循环。若主线程被sleep()
、死循环等阻塞,定时器回调会被延迟或无法执行(如文档示例中sleep(10000)
导致 5 秒后回调实际在 15 秒后执行)。
-
作用范围
- 控制台定时:控制的是 整个脚本的启动频率,例如设置“每隔 1 小时运行一次脚本”。
timers
模块:控制的是 脚本内部逻辑的时序,例如在脚本中延迟执行某段代码或循环执行某个操作。
-
适用场景
- 控制台定时:适合需要跨会话、长时间周期性的任务(如每天定时打卡)。
timers
模块:适合脚本内部短时间的延迟或循环逻辑(如点击按钮后等待 2 秒执行下一步)。
简而言之:
控制台定时 = 系统级周期性启动脚本,
timers
定时 = 脚本内部单线程时序控制。
ℹ️ 本回答由 AI 生成,内容仅供参考