You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Since with MQTT all subscribers will receive the downlink messages sent
// by the application, the first instance receiving the message must lock it,
// so that other instances can ignore the message.
key := fmt.Sprintf("lora:as:downlink:lock:%d:%s", pl.ApplicationID, pl.DevEUI)
set, err := storage.RedisClient().SetNX(key, "lock", downlinkLockTTL).Result()
if err != nil {
log.WithError(err).Error("integration/mqtt: acquire lock error")
return
}
Two messages will be considered different only if they send to different devices. Why this code can't take into account the content of these messages? That would help to avoid duplications but make it possible to process different messages that came too often
Component
Version
Application Server
v3.10.0
The text was updated successfully, but these errors were encountered:
What happened?
Only one of multiple downstream messages is handled if they will appear in MQTT with a delay of less than 100ms (all messages to the same device)
What did you expect?
All downstream message handled
The issue I believe in here mqtt.go#txPayloadHandler:
Two messages will be considered different only if they send to different devices. Why this code can't take into account the content of these messages? That would help to avoid duplications but make it possible to process different messages that came too often
The text was updated successfully, but these errors were encountered: