Reduce number of scheduled messages for session timeout
This commit is contained in:
parent
adddf5d180
commit
b7c01099c8
@ -939,7 +939,6 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void init(TbActorCtx ctx) {
|
void init(TbActorCtx ctx) {
|
||||||
schedulePeriodicMsgWithDelay(ctx, SessionTimeoutCheckMsg.instance(), systemContext.getSessionReportTimeout(), systemContext.getSessionReportTimeout());
|
|
||||||
PageLink pageLink = new PageLink(1024, 0, null, new SortOrder("createdTime"));
|
PageLink pageLink = new PageLink(1024, 0, null, new SortOrder("createdTime"));
|
||||||
PageData<Rpc> pageData;
|
PageData<Rpc> pageData;
|
||||||
do {
|
do {
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import org.thingsboard.server.actors.TbActorRef;
|
|||||||
import org.thingsboard.server.actors.TbEntityActorId;
|
import org.thingsboard.server.actors.TbEntityActorId;
|
||||||
import org.thingsboard.server.actors.TbEntityTypeActorIdPredicate;
|
import org.thingsboard.server.actors.TbEntityTypeActorIdPredicate;
|
||||||
import org.thingsboard.server.actors.device.DeviceActorCreator;
|
import org.thingsboard.server.actors.device.DeviceActorCreator;
|
||||||
|
import org.thingsboard.server.actors.device.SessionTimeoutCheckMsg;
|
||||||
import org.thingsboard.server.actors.ruleChain.RuleChainInputMsg;
|
import org.thingsboard.server.actors.ruleChain.RuleChainInputMsg;
|
||||||
import org.thingsboard.server.actors.ruleChain.RuleChainManagerActor;
|
import org.thingsboard.server.actors.ruleChain.RuleChainManagerActor;
|
||||||
import org.thingsboard.server.actors.ruleChain.RuleChainOutputMsg;
|
import org.thingsboard.server.actors.ruleChain.RuleChainOutputMsg;
|
||||||
@ -84,6 +85,8 @@ public class TenantActor extends RuleChainManagerActor {
|
|||||||
cantFindTenant = true;
|
cantFindTenant = true;
|
||||||
log.info("[{}] Started tenant actor for missing tenant.", tenantId);
|
log.info("[{}] Started tenant actor for missing tenant.", tenantId);
|
||||||
} else {
|
} else {
|
||||||
|
systemContext.schedulePeriodicMsgWithDelay(ctx, SessionTimeoutCheckMsg.instance(), systemContext.getSessionReportTimeout(), systemContext.getSessionReportTimeout());
|
||||||
|
|
||||||
apiUsageState = new ApiUsageState(systemContext.getApiUsageStateService().getApiUsageState(tenant.getId()));
|
apiUsageState = new ApiUsageState(systemContext.getApiUsageStateService().getApiUsageState(tenant.getId()));
|
||||||
|
|
||||||
// This Service may be started for specific tenant only.
|
// This Service may be started for specific tenant only.
|
||||||
@ -170,6 +173,9 @@ public class TenantActor extends RuleChainManagerActor {
|
|||||||
case REMOVE_RPC_TO_DEVICE_ACTOR_MSG:
|
case REMOVE_RPC_TO_DEVICE_ACTOR_MSG:
|
||||||
onToDeviceActorMsg((DeviceAwareMsg) msg, true);
|
onToDeviceActorMsg((DeviceAwareMsg) msg, true);
|
||||||
break;
|
break;
|
||||||
|
case SESSION_TIMEOUT_MSG:
|
||||||
|
broadcastToAllDeviceActors(msg);
|
||||||
|
break;
|
||||||
case RULE_CHAIN_INPUT_MSG:
|
case RULE_CHAIN_INPUT_MSG:
|
||||||
case RULE_CHAIN_OUTPUT_MSG:
|
case RULE_CHAIN_OUTPUT_MSG:
|
||||||
case RULE_CHAIN_TO_RULE_CHAIN_MSG:
|
case RULE_CHAIN_TO_RULE_CHAIN_MSG:
|
||||||
@ -184,6 +190,11 @@ public class TenantActor extends RuleChainManagerActor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void broadcastToAllDeviceActors(TbActorMsg msg) {
|
||||||
|
ctx.broadcastToChildren(msg, actorId -> actorId instanceof TbEntityActorId
|
||||||
|
&& EntityType.DEVICE.equals(((TbEntityActorId) actorId).getEntityId().getEntityType()));
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isMyPartition(EntityId entityId) {
|
private boolean isMyPartition(EntityId entityId) {
|
||||||
return systemContext.resolve(ServiceType.TB_CORE, tenantId, entityId).isMyPartition();
|
return systemContext.resolve(ServiceType.TB_CORE, tenantId, entityId).isMyPartition();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user