| #!/usr/bin/env python |
| import mesos |
| import sys |
| import time |
| import os |
| |
| from subprocess import * |
| |
| class MyExecutor(mesos.Executor): |
| def __init__(self): |
| mesos.Executor.__init__(self) |
| |
| def init(self, driver, arg): |
| print "in daemon executor" |
| |
| def launchTask(self, driver, task): |
| print "in launchTask" |
| self.tid = task.taskId |
| print "task id is " + str(task.taskId) + ", task.args is " + task.arg |
| self.args = task.arg.split("\t") |
| print "running: " + "java -cp " + self.args[0] + " " + self.args[1] + " " + self.args[2] |
| print Popen("/usr/lib/jvm/java-6-sun/bin/java -cp " + self.args[0] + " " + self.args[1] + " " + self.args[2], shell=True, stdout=PIPE).stdout.readline() |
| update = mesos.TaskStatus(task.taskId, mesos.TASK_FINISHED, "") |
| driver.sendStatusUpdate(update) |
| |
| |
| def error(self, code, message): |
| print "Error: %s" % message |
| |
| if __name__ == "__main__": |
| print "starting daemon framework executor" |
| executor = MyExecutor() |
| mesos.MesosExecutorDriver(executor).run() |