Change ordering of the startup sequence
This commit is contained in:
parent
c3623be872
commit
a535b320f1
@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
||||
import org.thingsboard.server.actors.ActorSystemContext;
|
||||
@ -113,6 +114,7 @@ public class DefaultActorService implements ActorService {
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
@Order(value = 2)
|
||||
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
|
||||
log.info("Received application ready event. Sending application init message to actor system");
|
||||
appActor.tellWithHighPriority(new AppInitMsg());
|
||||
|
||||
@ -20,7 +20,10 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.data.util.Pair;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.common.data.ApiFeature;
|
||||
@ -129,8 +132,8 @@ public class DefaultTbApiUsageStateService implements TbApiUsageStateService {
|
||||
public void init() {
|
||||
if (enabled) {
|
||||
log.info("Starting api usage service.");
|
||||
initStatesFromDataBase();
|
||||
scheduler.scheduleAtFixedRate(this::checkStartOfNextCycle, nextCycleCheckInterval, nextCycleCheckInterval, TimeUnit.MILLISECONDS);
|
||||
log.info("Started api usage service.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -340,12 +343,15 @@ public class DefaultTbApiUsageStateService implements TbApiUsageStateService {
|
||||
|
||||
private void initStatesFromDataBase() {
|
||||
try {
|
||||
log.info("Initializing tenant states.");
|
||||
PageDataIterable<Tenant> tenantIterator = new PageDataIterable<>(tenantService::findTenants, 1024);
|
||||
for (Tenant tenant : tenantIterator) {
|
||||
if (!myTenantStates.containsKey(tenant.getId()) && partitionService.resolve(ServiceType.TB_CORE, tenant.getId(), tenant.getId()).isMyPartition()) {
|
||||
log.debug("[{}] Initializing tenant state.", tenant.getId());
|
||||
updateLock.lock();
|
||||
try {
|
||||
updateTenantState(getOrFetchState(tenant.getId()), tenantProfileCache.get(tenant.getTenantProfileId()));
|
||||
log.debug("[{}] Initialized tenant state.", tenant.getId());
|
||||
} catch (Exception e) {
|
||||
log.warn("[{}] Failed to initialize tenant API state", tenant.getId(), e);
|
||||
} finally {
|
||||
@ -353,7 +359,7 @@ public class DefaultTbApiUsageStateService implements TbApiUsageStateService {
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("Api usage service started.");
|
||||
log.info("Initialized tenant states.");
|
||||
} catch (Exception e) {
|
||||
log.warn("Unknown failure", e);
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
||||
@ -140,6 +141,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
@Order(value = 2)
|
||||
public void onApplicationEvent(ApplicationReadyEvent event) {
|
||||
super.onApplicationEvent(event);
|
||||
launchUsageStatsConsumer();
|
||||
|
||||
@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
||||
import org.thingsboard.server.actors.ActorSystemContext;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
@ -85,6 +86,7 @@ public abstract class AbstractConsumerService<N extends com.google.protobuf.Gene
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
@Order(value = 2)
|
||||
public void onApplicationEvent(ApplicationReadyEvent event) {
|
||||
log.info("Subscribing to notifications: {}", nfConsumer.getTopic());
|
||||
this.nfConsumer.subscribe();
|
||||
|
||||
@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.common.stats.MessagesStats;
|
||||
import org.thingsboard.server.common.stats.StatsFactory;
|
||||
@ -90,6 +91,7 @@ public class TbCoreTransportApiService {
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
@Order(value = 2)
|
||||
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
|
||||
log.info("Received application ready event. Starting polling for events.");
|
||||
transportApiTemplate.init(transportApiService);
|
||||
|
||||
@ -20,6 +20,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
@ -40,6 +41,7 @@ public class DummyDiscoveryService implements DiscoveryService {
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
@Order(value = 1)
|
||||
public void onApplicationEvent(ApplicationReadyEvent event) {
|
||||
partitionService.recalculatePartitions(serviceInfoProvider.getServiceInfo(), Collections.emptyList());
|
||||
}
|
||||
|
||||
@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
||||
@ -112,6 +113,7 @@ public class ZkDiscoveryService implements DiscoveryService, PathChildrenCacheLi
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
@Order(value = 1)
|
||||
public void onApplicationEvent(ApplicationReadyEvent event) {
|
||||
if (stopped) {
|
||||
log.debug("Ignoring application ready event. Service is stopped.");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user