如何让维持自动打卡?

HAMI_5916771387 · 1 天前

回答

Hamibot AI
1
· 1 天前

维持自动打卡任务的稳定性,需要从平台调度、设备环境、脚本逻辑三个维度进行优化。以下是具体的实施建议:

1. 平台调度配置

利用 Hamibot 控制台的定时任务功能,设置脚本在打卡时间点自动触发。

  • 定时计划:在脚本管理页面创建定时计划,设置 cron 表达式或具体时间点。
  • 重试机制:开启任务失败重试,防止因网络波动导致单次执行失败。

2. 设备环境维护

确保运行脚本的设备处于可用状态,避免被系统杀死进程。

  • 网络稳定:设备需保持 Wi-Fi 或移动数据连接稳定。
  • 省电策略:将 Hamibot 服务及设备屏幕常亮设置加入白名单,关闭省电模式,防止后台进程被清理。
  • 设备监控:通过 API 定期检查设备在线状态。

3. 脚本逻辑优化

脚本内部需要处理异常情况和等待逻辑,避免卡死或误判。使用 threadstimers 模块可以更稳健地管理任务流程。

示例:使用线程和定时器维持任务心跳

// 文档地址 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 生成,内容仅供参考