package tech.powerjob.worker.actors; import lombok.extern.slf4j.Slf4j; import tech.powerjob.common.request.*; import tech.powerjob.common.response.AskResponse; import tech.powerjob.remote.framework.actor.Actor; import tech.powerjob.remote.framework.actor.Handler; import tech.powerjob.worker.common.WorkerRuntime; import tech.powerjob.worker.container.OmsContainerFactory; import static tech.powerjob.common.RemoteConstant.*; /** * Worker节点Actor,接受服务器请求 * * @author tjq * @since 2020/3/24 */ @Slf4j @Actor(path = WORKER_PATH) public class WorkerActor { private final WorkerRuntime workerRuntime; private final TaskTrackerActor taskTrackerActor; public WorkerActor(WorkerRuntime workerRuntime, TaskTrackerActor taskTrackerActor) { this.workerRuntime = workerRuntime; this.taskTrackerActor = taskTrackerActor; } @Handler(path = WORKER_HANDLER_DEPLOY_CONTAINER) public void onReceiveServerDeployContainerRequest(ServerDeployContainerRequest request) { OmsContainerFactory.deployContainer(request); } @Handler(path = WORKER_HANDLER_DESTROY_CONTAINER) public void onReceiveServerDestroyContainerRequest(ServerDestroyContainerRequest request) { OmsContainerFactory.destroyContainer(request.getContainerId()); } @Handler(path = WTT_HANDLER_RUN_JOB) public void onReceiveServerScheduleJobReq(ServerScheduleJobReq req) { taskTrackerActor.onReceiveServerScheduleJobReq(req); } @Handler(path = WTT_HANDLER_STOP_INSTANCE) public void onReceiveServerStopInstanceReq(ServerStopInstanceReq req) { taskTrackerActor.onReceiveServerStopInstanceReq(req); } @Handler(path = WTT_HANDLER_QUERY_INSTANCE_STATUS) public AskResponse onReceiveServerQueryInstanceStatusReq(ServerQueryInstanceStatusReq req) { return taskTrackerActor.onReceiveServerQueryInstanceStatusReq(req); } }