如果您需要同时向多个设备发送自定义Topic消息,可使用物联网平台的消息批量下发任务。本文介绍该任务的创建方法、运行中Topic及其数据格式的说明,查看状态的具体操作。

前提条件

  • 已在物联网平台为设备添加具有订阅订阅和发布权限的自定义Topic。具体操作,请参见自定义Topic
  • 已在设备端完成自定义Topic订阅,且未取消订阅。具体操作,请参见Link SDK的订阅Topic

任务管理流程

  1. 创建Pub服务任务。
    1. 物联网平台控制台,对应实例下的设备管理 > 任务页面,单击创建任务
    2. 创建任务页面,单击以下参数名称右侧的帮助图标帮助,根据页面提示,配置任务和作业,单击完成
      • 任务配置Pub服务任务
        参数 说明
        任务名称 输入符合规则的任务名称。
        任务类型 选择类型:Pub批量消息推送任务
        任务描述 输入该任务的用途等信息,便于您区分不同的任务。
        目标设备、产品或分组 选择可执行任务的设备。
        下发给设备的任务执行规则 上传规则文件。仅支持.json格式文件,文件大小不能超过64 KB。

        您可单击下载模板,获取规则文件模板。

        例如多个设备的自定义Topic为:/${productKey}/${deviceName}/user/get,代码示例如下:

        {
            "topicShortName": "get",
            "messageContent": "eyJ0ZXN0IjoidGFzayBiYXRjaHB1YiBicm9hZGNhc3QifQ=="
        }
        • topicShortName:用于定义完整的自定义Topic:/${productKey}/${deviceName}/user/${topicShortName}。即Topic:/${productKey}/${deviceName}/user/gettopicShortName值为get
        • messageContent:要发送的消息主体。您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。
      • 作业配置作业配置
        参数 说明
        作业执行推送配置
        • 每分钟作业执行数量:根据您的业务需要,设置每分钟作业推送数量。
        • 推送消息类型:仅对自定义任务和Pub批量消息推送任务生效。

          可选:

          • QoS0:最多发送一次。
          • QoS1:最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。
        作业执行的超时配置 可选配置。不设置表示不会超时。仅对自定义任务生效。

        从设备任务进入IN_PROGRESS状态,开始计算时间。如果超过了超时时间,任务下作业仍未执行完成,作业状态将被自动设置为TIMED_OUT,作业停止执行。

        作业开始调度时间 可选配置。

        从当前设置操作的时间,开始计算时间。

        设备任务创建成功后,先初始化,直至到达调度时间,才会开始调度执行。

  2. 任务创建完成后,物联网平台通过调用Pub接口,向多个设备发送消息,然后设备向物联网平台返回响应结果。
    自定义消息Topic为/${productKey}/${deviceName}/user/${TopicShortName},数据格式由用户自定义。
  3. 在物联网平台的设备管理 > 任务页面,查看已创建任务及当前状态。
    重要 状态为已超时的任务,不可再被调度执行。

    从任务创建完成开始计时,如果任务下作业未在7天内全部执行完成,任务状态显示为已超时

    您可根据实际场景需要,执行以下操作:

    • 在任务列表中,取消执行中状态的任务。
    • 单击目标任务对应的查看,进入任务详情页面。
      • 任务信息页签,修改任务描述和作业配置,下载设备任务文件。
      • 作业概览页签,查看任务下各状态的作业统计。

        您可单击目标设备的查看,在设备详情页面,单击任务页签,查看该设备下的所有任务列表;单击日志服务前往查看,在云端运行日志页签的业务类型列选择云到设备消息,查看设备任务相关日志。

        如果作业未执行成功,单击执行详情,可查看失败原因。

        如果作业执行已超时或失败,单击已超时失败的状态按钮,可查看对应状态的作业列表。您可单击列表上方的重新执行,重新执行当前任务下所有已超时和失败的作业。

        重新执行
    • 单击目标任务对应的删除,然后单击确认
      警告 删除设备任务后,与该任务相关的数据被清除,如果有依赖该任务的业务,可能导致服务不可用或影响用户的业务。请谨慎操作。