Merge pull request #13689 from imbeacon/fix/rate-limits-counting

Fixed consuming wrong rate limit for devices connected via gateway
This commit is contained in:
Viacheslav Klimov 2025-07-07 14:52:09 +03:00 committed by GitHub
commit b656f029ac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -82,16 +82,18 @@ public class DefaultTransportRateLimitService implements TransportRateLimitServi
if (!checkEntityRateLimit(dataPoints, getTenantRateLimits(tenantId))) {
return TbPair.of(EntityType.TENANT, false);
}
if (isGateway && !checkEntityRateLimit(dataPoints, getGatewayDeviceRateLimits(tenantId, deviceId))) {
return TbPair.of(EntityType.DEVICE, true);
if (isGateway) {
if (!checkEntityRateLimit(dataPoints, getGatewayDeviceRateLimits(tenantId, deviceId))) {
return TbPair.of(EntityType.DEVICE, true);
}
} else if (gatewayId == null && deviceId != null) {
if (!checkEntityRateLimit(dataPoints, getDeviceRateLimits(tenantId, deviceId))) {
return TbPair.of(EntityType.DEVICE, false);
}
}
if (gatewayId != null && !checkEntityRateLimit(dataPoints, getGatewayRateLimits(tenantId, gatewayId))) {
return TbPair.of(EntityType.DEVICE, true);
}
if (!isGateway && deviceId != null && !checkEntityRateLimit(dataPoints, getDeviceRateLimits(tenantId, deviceId))) {
return TbPair.of(EntityType.DEVICE, false);
}
return null;
}