fixed init with migration (no schema) and duplicated missing ping

This commit is contained in:
anhefti 2022-02-07 16:36:50 +01:00
parent c3a4e78218
commit 15e0ab59fd
4 changed files with 37 additions and 18 deletions

View file

@ -66,7 +66,7 @@ public class AsyncServiceSpringConfig implements AsyncConfigurer {
public Executor examAPIPingThreadPoolTaskExecutor() {
final ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setMaxPoolSize(100);
executor.setQueueCapacity(0);
executor.setThreadNamePrefix("SEBPingService-");
executor.initialize();

View file

@ -73,7 +73,7 @@ public class SEBServerMigrationStrategy implements FlywayMigrationStrategy {
SEBServerInit.INIT_LOGGER.info("----> Found pending migrations: {}", pendingMigrations.length);
// If we are in a distributed setup only apply migration task if this is the master service
// or if there was no data base initialization yet at all.
if (this.webserviceInfo.isDistributed()) {
if (this.webserviceInfo.isDistributed() && this.webserviceInfoDAO.isInitialized()) {
SEBServerInit.INIT_LOGGER.info("----> This is distributed setup, check master...");

View file

@ -78,21 +78,24 @@ public class WebserviceInit implements ApplicationListener<ApplicationReadyEvent
SEBServerInit.INIT_LOGGER.info("----> ");
SEBServerInit.INIT_LOGGER.info("----> Register Webservice: {}", this.webserviceInfo.getWebserviceUUID());
try {
final boolean register = this.webserviceInfoDAO.register(
this.webserviceInfo.getWebserviceUUID(),
InetAddress.getLocalHost().getHostAddress());
if (register) {
SEBServerInit.INIT_LOGGER.info("----> Successfully register Webservice instance");
}
} catch (final Exception e) {
SEBServerInit.INIT_LOGGER.error("----> Failed to register webservice: ", e);
}
if (this.webserviceInfoDAO.isInitialized()) {
this.registerWebservice();
// Apply migration if needed and possible
SEBServerInit.INIT_LOGGER.info("----> ");
this.sebServerMigrationStrategy.applyMigration();
SEBServerInit.INIT_LOGGER.info("----> ");
// Apply migration if needed and possible
SEBServerInit.INIT_LOGGER.info("----> ");
this.sebServerMigrationStrategy.applyMigration();
SEBServerInit.INIT_LOGGER.info("----> ");
} else {
// Apply migration if needed and possible
SEBServerInit.INIT_LOGGER.info("----> ");
this.sebServerMigrationStrategy.applyMigration();
SEBServerInit.INIT_LOGGER.info("----> ");
this.registerWebservice();
}
SEBServerInit.INIT_LOGGER.info("----> ");
SEBServerInit.INIT_LOGGER.info("----> Initialize Services...");
@ -155,6 +158,22 @@ public class WebserviceInit implements ApplicationListener<ApplicationReadyEvent
SEBServerInit.INIT_LOGGER.info("----> *********************************************************");
}
private boolean registerWebservice() {
boolean registered = false;
try {
final String webserviceUUID = this.webserviceInfo.getWebserviceUUID();
final String hostAddress = InetAddress.getLocalHost().getHostAddress();
registered = this.webserviceInfoDAO.register(webserviceUUID, hostAddress);
if (registered) {
SEBServerInit.INIT_LOGGER.info("----> Successfully register Webservice instance. uuid: {}, address: {}",
webserviceUUID, hostAddress);
}
} catch (final Exception e) {
SEBServerInit.INIT_LOGGER.error("----> Failed to register webservice: ", e);
}
return registered;
}
@PreDestroy
public void gracefulShutdown() {
SEBServerInit.INIT_LOGGER.info("*********************************************************");

View file

@ -115,12 +115,12 @@ public class ExamSessionControlTask implements DisposableBean {
updateMaster();
this.sebClientConnectionService.updatePingEvents();
if (!this.webserviceInfo.isMaster()) {
return;
}
this.sebClientConnectionService.updatePingEvents();
if (log.isTraceEnabled()) {
log.trace("Run exam session update task");
}