gpt4 book ai didi

mysql - Nodejs 在函数执行之间等待

转载 作者:行者123 更新时间:2023-12-05 06:57:47 25 4
gpt4 key购买 nike

我创建了一个接收 MQTT 消息的 NodeJS 应用程序。在收到消息时,我启动了一个功能来检查数据库,如果不存在,我会更新数据或创建数据。我同时收到12条消息,第一条消息应该在数据库中创建数据,其他消息应该更新数据;但是函数调用速度太快,SQL 查询比我的调用时间慢,而且我在数据库中创建了多个数据。

如何在函数调用之间设置延迟?可以排队吗?像这样:

message 1 arrive -> call my function.
message 2 arrive -> function is busy, wait. Function not busy call function.
message 3 arrive -> function is busy, wait. Function not busy call function.
etc...

要解释我的问题并不容易,我希望你能理解...谢谢

对不起我的英语...

最佳答案

您可能应该将传入消息添加到本地队列,然后您可以按顺序处理它们。

另一种选择是使用高 QOS 订阅并控制发送给代理的 MQTT 确认消息,但我认为 MQTT.js 不支持这一点。

您应该考虑使用 promises 来处理对数据库的调用,因为这些调用很可能是异步的,因此会在操作完成之前返回。

关于mysql - Nodejs 在函数执行之间等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64823480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com