23,635
社区成员




概述
EdgeX中的Scheduler是调度微服务提供一个内部EdgeX时钟,可以定期启动任何EdgeX的服务。通过配置Interval(间隔)和Inverval action(间隔的行为),使用REST调用EdgeX服务的API来触发操作。例如说可以定期清理core data中设备的旧事件。
| ISO 8601
ISO 8601是一项国际标准,涵盖日期和时间相关数据的全球交换和通信(信息交换)。时间以YYYYMMDD'T'HHmmss格式表示,例如表示2021年9月13日的凌晨,就是20210913T000000。
通过EdgeX UI新建Interval 和Interval Action
1. 登录localhost:4000进入ui界面,在侧边栏选择Scheduler并填入Interval选项。这里要填Inverval的名称(是要唯一的),Start和End代表的就是开始时间和结束时间。Interval就是间隔时间,这里填的5M意思就是时间间隔为5分钟。RunOnce只运行一次选false(如果不只执行一次的话)
2. 然后填IntervalAction,选好IntervalName就是代表你选择每隔5分钟只要要干什么。下面Address可以选择REST,MQTT ,EMAIL;REST也有一些模板,可以只清除指定设备的旧事件。需要填好执行的方法、端口和地址。
3.选好之后可以看到新增的Interval和Interval Action了。
通过REST的方式新建 Interval 和 Interval Action
Scheduler详细API可以看这里:
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/support-scheduler/2.0.0#/
1. 通过postman使用POST方法向http://<your ip>:59861/api/v2/interval发送请求。当然这里的字段requestId和id需要填uuid。uuid可以在在线网站生成。
2. 添加Interval Action
3. 验证。我们通过查询Random-Integer-Device设备之前事件的总次数,是368次,之后再查询变成了0,是因为自动事件清除了
root@u20:~# curl --location --request GET 'http://127.0.0.1:59880/api/v2/event/count/device/name/Random-Integer-Device'
{"apiVersion":"v2","statusCode":200,"Count":368}
root@u20:~# curl --location --request GET 'http://127.0.0.1:59880/api/v2/event/count/device/name/Random-Integer-Device'
{"apiVersion":"v2","statusCode":200,"Count":0}
写在最后
附上思维导图,同时可以关注一波公众号 ProgrammerHe
如果想提意见或指正文章错误欢迎留言,谢谢谢谢