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>
<groupId>io.openvidu</groupId>
<artifactId>openvidu-parent</artifactId>
<version>1.9.0-beta-1</version>
<version>2.0.0</version>
</parent>
<artifactId>openvidu-server</artifactId>

View File

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

View File

@ -17,9 +17,12 @@
package io.openvidu.server.core;
import org.springframework.stereotype.Service;
import io.openvidu.java.client.OpenViduRole;
import io.openvidu.server.kurento.core.KurentoTokenOptions;
@Service
public interface TokenGenerator {
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)) {
Recording stoppedRecording = this.recordingManager.forceStopRecording(this,
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

View File

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

View File

@ -29,7 +29,9 @@ public class FixedOneKmsManager extends KmsManager {
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() {
@Override

View File

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

View File

@ -17,13 +17,10 @@
package io.openvidu.server.kurento.kms;
import org.springframework.stereotype.Service;
@Service
public interface LoadManager {
double calculateLoad(Kms kms);
double calculateLoad(Kms kms);
boolean allowMoreElements(Kms kms);
boolean allowMoreElements(Kms kms);
}

View File

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

View File

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