回答
维持自动打卡任务的稳定性,需要从平台调度、设备环境、脚本逻辑三个维度进行优化。以下是具体的实施建议:
1. 平台调度配置
利用 Hamibot 控制台的定时任务功能,设置脚本在打卡时间点自动触发。
- 定时计划:在脚本管理页面创建定时计划,设置 cron 表达式或具体时间点。
- 重试机制:开启任务失败重试,防止因网络波动导致单次执行失败。
2. 设备环境维护
确保运行脚本的设备处于可用状态,避免被系统杀死进程。
- 网络稳定:设备需保持 Wi-Fi 或移动数据连接稳定。
- 省电策略:将 Hamibot 服务及设备屏幕常亮设置加入白名单,关闭省电模式,防止后台进程被清理。
- 设备监控:通过 API 定期检查设备在线状态。
3. 脚本逻辑优化
脚本内部需要处理异常情况和等待逻辑,避免卡死或误判。使用 threads 和 timers 模块可以更稳健地管理任务流程。
示例:使用线程和定时器维持任务心跳
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 主线程逻辑
var mainThread = threads.start(function () {
// 执行打卡逻辑
try {
// 此处填写具体的打卡操作代码
// 例如:click('打卡按钮');
toast('打卡任务执行中');
} catch (e) {
toast('打卡出错:' + e);
}
});
// 守护线程,防止脚本意外退出
var guardThread = threads.start(function () {
// 设置一个空的定时来保持线程的运行状态
setInterval(function () {
// 心跳检测
}, 5000);
});
// 使用定时器处理超时逻辑
var timeoutId = setTimeout(function () {
log('任务超时检查');
// 如果主线程未完成,可在此处处理异常
}, 60 * 1000);
// 任务完成后清理定时器
clearTimeout(timeoutId);
4. 远程监控与管理
通过 Hamibot API 监控设备状态和脚本执行情况,及时发现异常。
示例:检查设备状态
你可以调用 API 获取设备信息,确认设备是否在线。
var res = http.request('https://api.hamibot.com/v1/devices/设备_id', {
method: 'GET',
headers: {
authorization: '你的令牌(hmp 开头)',
},
});
log(res.statusCode);
示例:强制停止异常脚本
如果检测到设备异常,可通过 API 停止所有运行中的脚本。
http.request('https://api.hamibot.com/v1/devices/设备_id/stop', {
method: 'PUT',
headers: {
authorization: '你的令牌(hmp 开头)',
},
});
5. 最佳实践建议
- 日志记录:在脚本关键步骤使用
log()记录日志,便于排查问题。 - 图像/控件匹配优化:打卡界面若有变化,及时调整控件特征或图像阈值,避免找不到元素。
- 独立运行环境:建议专用设备运行打卡脚本,避免其他应用干扰。
通过上述配置和代码优化,可以显著提升自动打卡任务的长期运行可靠性。如果有具体的脚本报错或设备问题,可以提供详细日志以便进一步分析。
ℹ️ 本回答由 AI 生成,内容仅供参考