ExecutorProcess(const UPID& _slave,
MesosExecutorDriver* _driver,
Executor* _executor,
const SlaveID& _slaveId,
const FrameworkID& _frameworkId,
const ExecutorID& _executorId,
bool _local,
const
string& _directory,
bool _checkpoint,
Duration _recoveryTimeout,
std::recursive_mutex* _mutex,
Latch* _latch)
: ProcessBase(ID::generate("executor")),
slave(_slave),
driver(_driver),
executor(_executor),
slaveId(_slaveId),
frameworkId(_frameworkId),
executorId(_executorId),
connected(false),
connection(UUID::random()),
local(_local),
aborted(false),
mutex(_mutex),
latch(_latch),
directory(_directory),
checkpoint(_checkpoint),
recoveryTimeout(_recoveryTimeout)
{
LOG(INFO) << "Version: " << MESOS_VERSION;
install<ExecutorRegisteredMessage>(
&ExecutorProcess::registered,
&ExecutorRegisteredMessage::executor_info,
&ExecutorRegisteredMessage::framework_id,
&ExecutorRegisteredMessage::framework_info,
&ExecutorRegisteredMessage::slave_id,
&ExecutorRegisteredMessage::slave_info);
install<ExecutorReregisteredMessage>(
&ExecutorProcess::reregistered,
&ExecutorReregisteredMessage::slave_id,
&ExecutorReregisteredMessage::slave_info);
install<ReconnectExecutorMessage>(
&ExecutorProcess::reconnect,
&ReconnectExecutorMessage::slave_id);
install<RunTaskMessage>(
&ExecutorProcess::runTask,
&RunTaskMessage::task);
install<KillTaskMessage>(
&ExecutorProcess::killTask,
&KillTaskMessage::task_id);
install<StatusUpdateAcknowledgementMessage>(
&ExecutorProcess::statusUpdateAcknowledgement,
&StatusUpdateAcknowledgementMessage::slave_id,
&StatusUpdateAcknowledgementMessage::framework_id,
&StatusUpdateAcknowledgementMessage::task_id,
&StatusUpdateAcknowledgementMessage::uuid);
install<FrameworkToExecutorMessage>(
&ExecutorProcess::frameworkMessage,
&FrameworkToExecutorMessage::slave_id,
&FrameworkToExecutorMessage::framework_id,
&FrameworkToExecutorMessage::executor_id,
&FrameworkToExecutorMessage::data);
install<ShutdownExecutorMessage>(
&ExecutorProcess::shutdown);
}