任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

面对 IoT 设备在线运营和远程管理的诉求,IoT企业物联网平台发布了任务管理功能,可按产品维度、分组、或根据业务诉求批量选取设备,发起设备重启、配置参数变更、资源包更新、固件升级等业务定义任务。

任务管理的系统Topic和业务流程设计如下图:
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

 任务管理实战  

我们以批量设备远程更新运行参数场景为例,讲解任务管理的开发过程。

我们业务中有10000多台洗衣机,7836台处于在线状态,其余离线或未激活。如下图:
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务
1.设备端开发
通过阅读任务管理文档,我们知道在线设备需要订阅任务Topic,才能实时获取到任务通知。
对应Topic和Payload如下:

/sys/{productKey}/{deviceName}/thing/job/notify

{
    "id":"7542940",
    "version":"1.0",
    "params":{
        "task":{
            "taskId":"i5Ks6F010101",
            "status":"SENT",
            "jobDocument":{
                "operatingMode":23
            },
            "jobFile":{
                "signMethod":"Md5",
                "sign":"wssxff56dhdsd",
                "fileUrl":"https://iotx-oss.aliyuncs.com/ota.zip"
            }
        }
    }
}

离线设备上线后,需要主动拉取任务Topic,才能获取到历史任务信息。
请求任务对应Topic和Payload如下:

/sys/{productKey}/{deviceName}/thing/job/get

{
    "id":"127542",
    "version":"1.0.0",
    "params":{
        "taskId":"$next"
    }
}
```
IoT物联网平台响应任务信息的Topic和Payload如下:
> /sys/{productKey}/{deviceName}/thing/job/get_reply



```json
{
    "code":200,
    "data":{
        "task":{
            "jobDocument":{
                "operatingMode":23
            },
            "taskId":"b2ceb5ddsd69",
            "status":"SENT"
        },
        "taskId":"$next"
    },
    "id":"1610526478300",
    "method":"thing.job.get",
    "version":"1.0"
}

设备接收到任务信息后,需要根据业务情况主动上报设备任务执行进度和结果信息,对应Topic和Payload如下:

/sys/{productKey}/{deviceName}/thing/job/update

{
    "id":"175423",
    "version":"1.0",
    "params":{
        "taskId":"i5Kssgc010101",
        "status":"IN_PROGRESS",
        "statusDetails":{
            "endTime":1610629200000
        },
        "progress":64
    }
}

2.IoT控制台创建任务
在企业物联网实例控制台,选择设备管理任务,选择指定产品,上传任务模板,模板中携带了运行参数 "operatingMode":23。
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

在作业配置选择每分钟执行的设备数量和任务超时时间。
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

点击完成,我们看到新建的任务处于执行中,如下图:
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

3.任务执行
进入任务详情,在作业概览,我们可以看到处于执行中,成功,失败,已超时等不同状态下的设备情况。
任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

同理,我们可以借助任务管理来批量更新设备端资源包,批量重启设备,甚至固件升级功能。

任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务

上一篇:WCF客户端动态设置WCF服务器主机的地址的方法参考,可以连接多个相同WCF主机的方法


下一篇:算法研究:已知不重复的int集合,求最长递增子序列