我正在创建一个物联网设备,用户可以在其中设置特定时间来触发物联网设备的操作。例如:在01:00 PM,空调自动启动。 我正在使用谷歌云平台。我在 GCP 中检查了 Cron 作业,该作业在特定时间或指定间隔触发特定 URL。由于我的触发时间存储在数据存储中,因此我必须在每分钟后使用 cron 作业查询数据库,我可以在其中编写逻辑,以便在时间匹配时触发操作。但在最坏的情况下,总会有 59 秒的延迟,否则我可以在每秒后调用 URL。每秒调用 ulr 将非常昂贵,因为我需要每 1 秒查询一次数据库。还有其他有效的方法可以实现这一目标吗?
为了确保我理解,您试图避免的用例是用户将 AC 设置为在下午 1 点打开,并将其设置为 13:00:01(所以他们必须等到 13:01:00 才能打开 AC)?
假设是这种情况,那么,如果您使用的是Firebase/Firestore,则可以使用GCF(Google Cloud Function)实际触发AC打开(例如,向设备发送IoT Core配置消息,不确定您实际如何实际打开AC)。GCF 可以由每分钟触发一次的 CRON 作业触发,也可以让它响应 Firebase 中的数据库值更改(这是事件触发器之一)。
因此,用户设置了空调开启的时间,这会在Firebase数据库中设置一个值,这会触发GCF检查该值,并查看是否应该打开空调。这样,您就不会单独依靠 CRON 作业来打开 AC,您还有一个数据更改事件来检查时间。这应该可以消除您情况下的 59 秒等待时间。