List/Hash data structure in Redis for messages; add jobId in annotations format
This commit is contained in:
parent
3c2aa14907
commit
e5dec08ab9
@ -27,6 +27,10 @@ class StorePresentationAnnotationsRecordEvent extends AbstractPresentationWithAn
|
|||||||
|
|
||||||
setEvent("StorePresentationAnnotationsRecordEvent")
|
setEvent("StorePresentationAnnotationsRecordEvent")
|
||||||
|
|
||||||
|
def setJobId(jobId: String) {
|
||||||
|
eventMap.put(JOB_ID, jobId)
|
||||||
|
}
|
||||||
|
|
||||||
def setPresId(presId: String) {
|
def setPresId(presId: String) {
|
||||||
eventMap.put(PRES_ID, presId)
|
eventMap.put(PRES_ID, presId)
|
||||||
}
|
}
|
||||||
@ -37,6 +41,7 @@ class StorePresentationAnnotationsRecordEvent extends AbstractPresentationWithAn
|
|||||||
}
|
}
|
||||||
|
|
||||||
object StorePresentationAnnotationsRecordEvent {
|
object StorePresentationAnnotationsRecordEvent {
|
||||||
|
protected final val JOB_ID = "jobId"
|
||||||
protected final val PRES_ID = "presId"
|
protected final val PRES_ID = "presId"
|
||||||
protected final val PAGES = "pages"
|
protected final val PAGES = "pages"
|
||||||
}
|
}
|
||||||
|
@ -778,12 +778,13 @@ class MeetingActor(
|
|||||||
resultingPage += 1
|
resultingPage += 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val jobId = RandomStringGenerator.randomAlphanumericString(16)
|
||||||
|
|
||||||
// 1) Send Annotations to Redis
|
// 1) Send Annotations to Redis
|
||||||
var annotations = new StoredAnnotations(presId, storeAnnotationPages)
|
var annotations = new StoredAnnotations(jobId, presId, storeAnnotationPages)
|
||||||
outGW.send(buildStoreAnnotationsInRedisSysMsg(annotations))
|
outGW.send(buildStoreAnnotationsInRedisSysMsg(annotations))
|
||||||
|
|
||||||
// 2) Insert Export Job in Redis
|
// 2) Insert Export Job in Redis
|
||||||
val jobId = RandomStringGenerator.randomAlphanumericString(16)
|
|
||||||
val jobType = "PresentationWithAnnotationDownloadJob"
|
val jobType = "PresentationWithAnnotationDownloadJob"
|
||||||
val presLocation = s"/var/bigbluebutton/${presId}"
|
val presLocation = s"/var/bigbluebutton/${presId}"
|
||||||
val exportJob = new ExportJob(jobId, jobType, presId, presLocation, allPages, storeAnnotationPages, "", "")
|
val exportJob = new ExportJob(jobId, jobType, presId, presLocation, allPages, storeAnnotationPages, "", "")
|
||||||
@ -823,16 +824,16 @@ class MeetingActor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val presentationUploadToken: String = PresentationPodsApp.generateToken("DEFAULT_PRESENTATION_POD", userId)
|
val presentationUploadToken: String = PresentationPodsApp.generateToken("DEFAULT_PRESENTATION_POD", userId)
|
||||||
|
val jobId = RandomStringGenerator.randomAlphanumericString(16)
|
||||||
|
|
||||||
// Informs bbb-web about the token so that when we use it to upload the presentation, it is able to look it up in the list of tokens
|
// Informs bbb-web about the token so that when we use it to upload the presentation, it is able to look it up in the list of tokens
|
||||||
outGW.send(buildPresentationUploadTokenSysPubMsg(parentMeetingId, userId, presentationUploadToken, currentPres.name))
|
outGW.send(buildPresentationUploadTokenSysPubMsg(parentMeetingId, userId, presentationUploadToken, currentPres.name))
|
||||||
|
|
||||||
// 1) Send Annotations to Redis
|
// 1) Send Annotations to Redis
|
||||||
var annotations = new StoredAnnotations(presId, storeAnnotationPages)
|
var annotations = new StoredAnnotations(jobId, presId, storeAnnotationPages)
|
||||||
outGW.send(buildStoreAnnotationsInRedisSysMsg(annotations))
|
outGW.send(buildStoreAnnotationsInRedisSysMsg(annotations))
|
||||||
|
|
||||||
// 2) Insert Export Job in Redis
|
// 2) Insert Export Job in Redis
|
||||||
val jobId = RandomStringGenerator.randomAlphanumericString(16)
|
|
||||||
val jobType: String = "PresentationWithAnnotationExportJob"
|
val jobType: String = "PresentationWithAnnotationExportJob"
|
||||||
val presLocation = s"/var/bigbluebutton/${presId}"
|
val presLocation = s"/var/bigbluebutton/${presId}"
|
||||||
val exportJob = new ExportJob(jobId, jobType, presId, presLocation, allPages, storeAnnotationPages, parentMeetingId, presentationUploadToken)
|
val exportJob = new ExportJob(jobId, jobType, presId, presLocation, allPages, storeAnnotationPages, parentMeetingId, presentationUploadToken)
|
||||||
|
@ -114,8 +114,8 @@ class AnalyticsActor(val includeChat: Boolean) extends Actor with ActorLogging {
|
|||||||
case m: SetPresentationDownloadableEvtMsg => logMessage(msg)
|
case m: SetPresentationDownloadableEvtMsg => logMessage(msg)
|
||||||
//case m: PresentationPageConvertedSysMsg => logMessage(msg)
|
//case m: PresentationPageConvertedSysMsg => logMessage(msg)
|
||||||
//case m: PresentationPageConvertedEventMsg => logMessage(msg)
|
//case m: PresentationPageConvertedEventMsg => logMessage(msg)
|
||||||
case m: StoreAnnotationsInRedisSysMsg => logMessage(msg)
|
// case m: StoreAnnotationsInRedisSysMsg => logMessage(msg)
|
||||||
case m: StoreExportJobInRedisSysMsg => logMessage(msg)
|
// case m: StoreExportJobInRedisSysMsg => logMessage(msg)
|
||||||
case m: MakePresentationWithAnnotationDownloadReqMsg => logMessage(msg)
|
case m: MakePresentationWithAnnotationDownloadReqMsg => logMessage(msg)
|
||||||
case m: ExportPresentationWithAnnotationReqMsg => logMessage(msg)
|
case m: ExportPresentationWithAnnotationReqMsg => logMessage(msg)
|
||||||
case m: PresentationPageConversionStartedSysMsg => logMessage(msg)
|
case m: PresentationPageConversionStartedSysMsg => logMessage(msg)
|
||||||
|
@ -142,6 +142,7 @@ class RedisRecorderActor(
|
|||||||
private def handleStoreAnnotationsInRedisSysMsg(msg: StoreAnnotationsInRedisSysMsg) {
|
private def handleStoreAnnotationsInRedisSysMsg(msg: StoreAnnotationsInRedisSysMsg) {
|
||||||
val ev = new StorePresentationAnnotationsRecordEvent()
|
val ev = new StorePresentationAnnotationsRecordEvent()
|
||||||
|
|
||||||
|
ev.setJobId(msg.body.annotations.jobId)
|
||||||
ev.setPresId(msg.body.annotations.presId)
|
ev.setPresId(msg.body.annotations.presId)
|
||||||
ev.setPages(msg.body.annotations.pages)
|
ev.setPages(msg.body.annotations.pages)
|
||||||
|
|
||||||
|
@ -21,6 +21,8 @@ package org.bigbluebutton.common2.redis;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
import io.lettuce.core.api.sync.BaseRedisCommands;
|
import io.lettuce.core.api.sync.BaseRedisCommands;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -114,10 +116,28 @@ public class RedisStorageService extends RedisAwareCommunicator {
|
|||||||
|
|
||||||
public void storePresentationAnnotations(String meetingId, Map<String, String> event, String msgType) {
|
public void storePresentationAnnotations(String meetingId, Map<String, String> event, String msgType) {
|
||||||
RedisCommands<String, String> commands = connection.sync();
|
RedisCommands<String, String> commands = connection.sync();
|
||||||
Long msgid = commands.incr("global:nextRecordedMsgId");
|
|
||||||
commands.multi();
|
commands.multi();
|
||||||
commands.hmset("store" + msgType + ":" + meetingId + ":" + msgid, event);
|
|
||||||
commands.rpush("meeting:" + meetingId + ":" + "store" + msgType, Long.toString(msgid));
|
switch (msgType) {
|
||||||
|
case "Annotations": {
|
||||||
|
commands.hmset(event.get("jobId"), event);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "ExportJob": {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
String exportJobAsJson = gson.toJson(event);
|
||||||
|
commands.rpush("exportJobs", exportJobAsJson.toString());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
log.error("Attempted to store PresentationAnnotations message of type: {} (expected 'Annotations' or 'ExportJob')", clientName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
commands.exec();
|
commands.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ case class PresentationPageForExport(
|
|||||||
)
|
)
|
||||||
|
|
||||||
case class StoredAnnotations(
|
case class StoredAnnotations(
|
||||||
|
jobId: String,
|
||||||
presId: String,
|
presId: String,
|
||||||
pages: Array[PresentationPageForExport],
|
pages: Array[PresentationPageForExport],
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user