
com.hubspot.singularity.mesos.SingularityMesosFrameworkMessageHandler Maven / Gradle / Ivy
package com.hubspot.singularity.mesos;
import static java.nio.charset.StandardCharsets.UTF_8;
import org.apache.mesos.Protos;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.hubspot.singularity.SingularityCreateResult;
import com.hubspot.singularity.SingularityTaskShellCommandUpdate;
import com.hubspot.singularity.data.TaskManager;
import com.hubspot.singularity.data.transcoders.SingularityTranscoderException;
import com.hubspot.singularity.data.transcoders.Transcoder;
@Singleton
public class SingularityMesosFrameworkMessageHandler {
private static final Logger LOG = LoggerFactory.getLogger(SingularityMesosFrameworkMessageHandler.class);
private final TaskManager taskManager;
private final Transcoder commandUpdateTranscoder;
@Inject
public SingularityMesosFrameworkMessageHandler(TaskManager taskManager, Transcoder commandUpdateTranscoder) {
this.taskManager = taskManager;
this.commandUpdateTranscoder = commandUpdateTranscoder;
}
public void handleMessage(Protos.ExecutorID executorId, Protos.SlaveID slaveId, byte[] data) {
try {
SingularityTaskShellCommandUpdate shellUpdate = commandUpdateTranscoder.fromBytes(data);
SingularityCreateResult saved = taskManager.saveTaskShellCommandUpdate(shellUpdate);
LOG.debug("Saved {} with result {}", shellUpdate, saved);
} catch (SingularityTranscoderException ste) {
LOG.warn("Framework message {} not a commandUpdate", new String(data, UTF_8));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy