openvidu-server: LoadManager interface

pull/375/head
pabloFuente 2019-06-11 14:28:43 +02:00
parent e7bf2073ae
commit 1cfdcb0fed
10 changed files with 23 additions and 21 deletions

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>io.openvidu</groupId> <groupId>io.openvidu</groupId>
<artifactId>openvidu-parent</artifactId> <artifactId>openvidu-parent</artifactId>
<version>1.9.0-beta-1</version> <version>2.0.0</version>
</parent> </parent>
<artifactId>openvidu-server</artifactId> <artifactId>openvidu-server</artifactId>

View File

@ -105,7 +105,7 @@ public class OpenViduServer implements JsonRpcConfigurer {
String firstKmsWsUri = kmsWsUris.get(0); String firstKmsWsUri = kmsWsUris.get(0);
log.info("OpenVidu Server using one KMS: {}", kmsWsUris); log.info("OpenVidu Server using one KMS: {}", kmsWsUris);
return new FixedOneKmsManager(firstKmsWsUri); return new FixedOneKmsManager(firstKmsWsUri, new DummyLoadManager());
} }
@Bean @Bean
@ -150,12 +150,6 @@ public class OpenViduServer implements JsonRpcConfigurer {
return new TokenGeneratorDefault(); return new TokenGeneratorDefault();
} }
@Bean
@ConditionalOnMissingBean
public LoadManager loadManager() {
return new DummyLoadManager();
}
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public OpenviduConfig openviduConfig() { public OpenviduConfig openviduConfig() {

View File

@ -17,9 +17,12 @@
package io.openvidu.server.core; package io.openvidu.server.core;
import org.springframework.stereotype.Service;
import io.openvidu.java.client.OpenViduRole; import io.openvidu.java.client.OpenViduRole;
import io.openvidu.server.kurento.core.KurentoTokenOptions; import io.openvidu.server.kurento.core.KurentoTokenOptions;
@Service
public interface TokenGenerator { public interface TokenGenerator {
public Token generateToken(String sessionId, OpenViduRole role, String serverMetadata, public Token generateToken(String sessionId, OpenViduRole role, String serverMetadata,

View File

@ -287,11 +287,6 @@ public class KurentoSession extends Session {
if (recordingManager.sessionIsBeingRecorded(this.sessionId)) { if (recordingManager.sessionIsBeingRecorded(this.sessionId)) {
Recording stoppedRecording = this.recordingManager.forceStopRecording(this, Recording stoppedRecording = this.recordingManager.forceStopRecording(this,
EndReason.mediaServerDisconnect); EndReason.mediaServerDisconnect);
if (OutputMode.COMPOSED.equals(stoppedRecording.getOutputMode()) && stoppedRecording.hasVideo()) {
recordingManager.getSessionManager().evictParticipant(
this.getParticipantByPublicId(ProtocolElements.RECORDER_PARTICIPANT_PUBLICID), null, null,
null);
}
} }
// Close all MediaEndpoints of participants // Close all MediaEndpoints of participants

View File

@ -17,6 +17,9 @@
package io.openvidu.server.kurento.kms; package io.openvidu.server.kurento.kms;
import org.springframework.stereotype.Service;
@Service
public class DummyLoadManager implements LoadManager { public class DummyLoadManager implements LoadManager {
@Override @Override

View File

@ -29,7 +29,9 @@ public class FixedOneKmsManager extends KmsManager {
private static final Logger log = LoggerFactory.getLogger(FixedOneKmsManager.class); private static final Logger log = LoggerFactory.getLogger(FixedOneKmsManager.class);
public FixedOneKmsManager(String kmsWsUri) { public FixedOneKmsManager(String kmsWsUri, LoadManager loadManager) {
super(loadManager);
KurentoClient kClient = KurentoClient.create(kmsWsUri, new KurentoConnectionListener() { KurentoClient kClient = KurentoClient.create(kmsWsUri, new KurentoConnectionListener() {
@Override @Override

View File

@ -61,7 +61,6 @@ public abstract class KmsManager {
@Autowired @Autowired
protected SessionManager sessionManager; protected SessionManager sessionManager;
@Autowired
protected LoadManager loadManager; protected LoadManager loadManager;
private final Logger log = LoggerFactory.getLogger(KmsManager.class); private final Logger log = LoggerFactory.getLogger(KmsManager.class);
@ -71,6 +70,10 @@ public abstract class KmsManager {
private Iterator<Kms> usageIterator = null; private Iterator<Kms> usageIterator = null;
public KmsManager(LoadManager loadManager) {
this.loadManager = loadManager;
}
public synchronized void addKms(Kms kms) { public synchronized void addKms(Kms kms) {
this.kmss.put(kms.getUri(), kms); this.kmss.put(kms.getUri(), kms);
} }

View File

@ -17,9 +17,6 @@
package io.openvidu.server.kurento.kms; package io.openvidu.server.kurento.kms;
import org.springframework.stereotype.Service;
@Service
public interface LoadManager { public interface LoadManager {
double calculateLoad(Kms kms); double calculateLoad(Kms kms);

View File

@ -219,6 +219,11 @@ public class RecordingManager {
switch (recording.getOutputMode()) { switch (recording.getOutputMode()) {
case COMPOSED: case COMPOSED:
recording = this.composedRecordingService.stopRecording(session, recording, reason); recording = this.composedRecordingService.stopRecording(session, recording, reason);
if (recording.hasVideo()) {
this.sessionManager.evictParticipant(
session.getParticipantByPublicId(ProtocolElements.RECORDER_PARTICIPANT_PUBLICID), null, null,
null);
}
break; break;
case INDIVIDUAL: case INDIVIDUAL:
recording = this.singleStreamRecordingService.stopRecording(session, recording, reason); recording = this.singleStreamRecordingService.stopRecording(session, recording, reason);

View File

@ -5,7 +5,7 @@
<groupId>io.openvidu</groupId> <groupId>io.openvidu</groupId>
<artifactId>openvidu-parent</artifactId> <artifactId>openvidu-parent</artifactId>
<version>1.9.0-beta-1</version> <version>2.0.0</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>OpenVidu</name> <name>OpenVidu</name>