emqx支持mqtt定时下发吗

emqx支持mqtt定时下发功能吗

EMQX 支持消息 延迟发布,你看下是否是你需要的

这可能是间隔多久才发布 看起来不是我需要的 虽然可以通过外接服务器做一个定时器定时给服务器推送一个消息 我更多的是想emqx内置方式每天能某一个时间点固定能触发发布 也就是定时任务

了解了,但是你的数据内容是什么呢?或者数据从哪里来?除了系统消息以外,EMQX 无法凭空生成消息。

内容可以通过Rest API提交 参数类似于具体主题 以及要给它推送的payload? 比如我往某一个主题设置一个定时消息 感觉是一个比较常用功能 特别是一些物联网设备需要某一段时间生效的情况下就非常有用

多加一个参数 时间点(小时分钟)这样的

所以这个定时消息的 Payload 是固定不会变化的是吗?如果这样的话是不是保留消息可以满足你的需要?

保留消息只是上线的时候会获得一次 而如果设备一直在线 就触发不了保留消息的机制 所以还是满足不了 你说的这几点我都有考虑过

了解,前面提到的物联网设备需要一段时间生效的情况,方便更具体地展开一下吗?另外你应该还需要一个让消息过期的手段?

既然有添加定时消息 那么就有一个删除定时消息 rest api 以及查询接口之类的?

一段时间生效,比如xxxx 灯光系统 我定时每天6点触发自动开灯 或者啥门铃 每天定时一个时间点响一次 这样的 类似于闹钟

  1. 启动延时发布功能。
  2. 创建一个规则:

SELECT * FROM “topic”

动作填:

“$delayed/10/topic”

这样子应该就能每 10s 循环发送一个主题为 “topic” 的消息。

我估计要的是一个固定时间点 而不是延后 那个点只需要每天发送一次即可 一直循环的话 说实在性能真的低效

crontab 吧,写个脚本,每天发送一个消息给 emqx

这个有考虑过hhhhh 主要就是想官方有这样的功能

大致了解你的需要了,我会把这个需求记录下来反馈给产品团队。

但是相对来说这个功能即便会规划实现,但优先级应该也不会太高,也就是说实现需要的时间可能会偏长。

你可以先通过前面提到的 crontab 的方式来实现一下。之后如果有新的反馈,我会在这里和你同步。

另外还有一个问题,如果是固定周期固定内容,那为什么不在设备端直接定时?考虑到如果设备数量较多,每个设备都需要一个或多个这样的定时消息的话,好像代价会偏高?

是的 所以还是要分场景的 比如我后台有入口去创建这种消息 更多像是一个控制中心下发的功能 用在设备上实现的话就变成各自维护了

我想应该不会违背你通过控制中心下发的目的,只是需要把业务逻辑处理在设备端实现。

比如你在控制中心下发定时任务,实际控制中心发送给 EMQX 的消息为:

{
    "start": "2023-03-07 16:00:00",
    "interval": "6h",
    "stop": "2023-03-10 16:00:00",
    "operation": "anything"
}

设备端原封不动地收到这条消息,然后执行定时任务。

不会是这样的结构 emqx只需要负责到点就把这条消息下发一次 不用管消息里面是什么。。。 只是一个自动往主题pub一条消息而已

是的,我只是举了个例子,现在你下发给设备的消息相当于是这样的:

{
  "operation": "anything"
}

定时的起始时间、周期、结束时间你是希望通过 API 告诉给 EQMX 的。

所以我的意思是,你可以把这些信息直接发给你的设备,让你设备直接处理定时的逻辑。

这样其实你的设备只要接收一次消息就可以了。