EdgeX系列之五 -- 设置定时任务

1. 简介

在实际应用场景中,经常需要定时从设备中获取数据,在EdgeX Foundry中supporting services支持设置定时任务,定时从设备中采集数据。

定时任务对应的微服务名称叫做edgex-support-scheduler,支持设置interval和interval action,interval设置任务的时间间隔,interval action设置要执行的操作,同一个interval可以对应多个interval action。
EdgeX系列之五 -- 设置定时任务

Postman是一款强大的网页调试工具客户端,为用户提供强大的Web API & HTTP请求调试功能,支持Windows,Mac和Linux多种平台。

2. 设置interval

通过POST方法设置interval,地址为http://127.0.0.1:48085/api/v1/interval
上传数据如下,未设置的字段为默认值

{
  "name": "for5s",
 “start": null,
  "end": null,
  "frequency": "PT5S"
}
字段 说明
name 随便写
start null
end null
frequency PT5S标识时间间隔为5s

在POST方法成功执行之后会返回一个id,作为这个Interval的唯一标识。

3. 设置Interval Action

同样采用POST方法设置interval action,地址为http://127.0.0.1:48085/api/v1/intervalaction
上传数据如下,未设置的字段为默认值
{
“name”: “scheduleevent-device-mqtt-01”,
“interval”: “for5s”,
“target”: “edgex-device-mqtt”,
“protocol”: “http”,
“httpMethod”: “GET”,
“address”: “192.168.0.92”,
“port”: 49982,
“path”: “/api/v1/device/7e583f73-4a06-44fd-b24d-0727e262b764/testping”,
“parameters”: null
}

字段 说明
name 随便填
interval 填写刚才设置的interval名字, for5s
target 设备服务名字,edgex-device-mqtt
protocol http
httpMethod GET
address 访问edgex-device-mqtt服务的ip地址
port 访问edgex-device-mqtt服务的端口号
path 通过GET方法访问http://127.0.0.1:48082/api/v1/device网址获取,格式为/api/v1/device/{deviceId}/testping,deviceId也是同样方式获得
parameters null

POST方法执行成功后返回id,作为该IntervalAction的唯一标识。

4. 查看数据库

使用系列之三中提到的数据库可视化工具查看CoreData数据库,查询其中的event可以看到数据以5s为时间间隔进行更新。

上一篇:两条水位线的业务需求分析-Interval JOIN方案(转载+自己分析整理)


下一篇:mysql 时间戳转换 今天、昨天、7天、本月、上月