@Component public class DistributedJobManager extends AbstractJobManager
conf, dependMapper, jobMapper, log| 构造器和说明 |
|---|
DistributedJobManager(SupervisorProperties conf,
SchedJobMapper jobMapper,
SchedDependMapper dependMapper,
SchedInstanceMapper instanceMapper,
SchedTaskMapper taskMapper,
SchedWorkflowMapper workflowMapper,
cn.ponfee.disjob.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
DiscoveryServerRestProxy.GroupedServerInvoker<cn.ponfee.disjob.core.base.WorkerRpcService> groupedWorkerRpcClient,
DestinationServerRestProxy.DestinationServerInvoker<cn.ponfee.disjob.core.base.WorkerRpcService,cn.ponfee.disjob.core.base.Worker> destinationWorkerRpcClient,
org.springframework.transaction.support.TransactionTemplate transactionTemplate) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
abortBroadcastWaitingTask(long taskId)
Broadcast strategy task after assigned worker.
|
boolean |
cancelInstance(long instanceId,
cn.ponfee.disjob.core.enums.Operation ops)
Cancel instance
|
void |
changeInstanceState(long instanceId,
cn.ponfee.disjob.core.enums.ExecuteState toExecuteState)
Force change instance state
|
boolean |
createInstance(cn.ponfee.disjob.core.model.SchedJob job,
TriggerInstance triggerInstance)
Update sched job, save sched instance and tasks.
|
void |
deleteInstance(long instanceId) |
protected List<cn.ponfee.disjob.core.model.SchedTask> |
listPausableTasks(long instanceId)
Lists the pausable tasks
|
boolean |
pauseInstance(long instanceId)
Pause instance
|
void |
processTaskDispatchFailedEvent(TaskDispatchFailedEvent event)
Listen task dispatch failed event
`@Async`需要标注`@EnableAsync`来启用,默认使用的是`SimpleAsyncTaskExecutor`线程池,会为每个任务创建一个新线程(慎用) |
boolean |
purgeInstance(cn.ponfee.disjob.core.model.SchedInstance inst)
Purge the zombie instance which maybe dead
|
boolean |
resumeInstance(long instanceId)
Resume the instance from paused to waiting state
|
boolean |
savepoint(long taskId,
String worker,
String executeSnapshot) |
cn.ponfee.disjob.core.dto.supervisor.StartTaskResult |
startTask(cn.ponfee.disjob.core.dto.supervisor.StartTaskParam param)
Starts the task
|
boolean |
stopTask(cn.ponfee.disjob.core.dto.supervisor.StopTaskParam param)
Stop task
|
void |
triggerJob(long jobId)
Manual trigger the sched job
|
boolean |
updateInstanceNextScanTime(cn.ponfee.disjob.core.model.SchedInstance instance,
Date nextScanTime) |
void |
updateTaskWorker(String worker,
List<Long> taskIds)
Set or clear task worker
当worker不相同时,可使用`CASE WHEN`语法:
UPDATE sched_task SET worker =
CASE
WHEN task_id = 1 THEN 'a'
WHEN task_id = 2 THEN 'b'
END
WHERE id IN (1, 2)
|
addJob, changeJobState, deleteJob, disableJob, dispatch, dispatch, dispatch, generateId, hasAliveExecuting, hasNotDiscoveredWorkers, hasNotDiscoveredWorkers, isAliveWorker, isAliveWorker, isDeadWorker, shouldRedispatch, splitJob, updateFixedDelayNextTriggerTime, updateJob, updateJobNextScanTime, updateJobNextTriggerTimepublic DistributedJobManager(SupervisorProperties conf, SchedJobMapper jobMapper, SchedDependMapper dependMapper, SchedInstanceMapper instanceMapper, SchedTaskMapper taskMapper, SchedWorkflowMapper workflowMapper, cn.ponfee.disjob.common.base.IdGenerator idGenerator, SupervisorRegistry discoveryWorker, TaskDispatcher taskDispatcher, DiscoveryServerRestProxy.GroupedServerInvoker<cn.ponfee.disjob.core.base.WorkerRpcService> groupedWorkerRpcClient, DestinationServerRestProxy.DestinationServerInvoker<cn.ponfee.disjob.core.base.WorkerRpcService,cn.ponfee.disjob.core.base.Worker> destinationWorkerRpcClient, @Qualifier(value="disjobTransactionTemplate") org.springframework.transaction.support.TransactionTemplate transactionTemplate)
@EventListener public void processTaskDispatchFailedEvent(TaskDispatchFailedEvent event)
`@Async`需要标注`@EnableAsync`来启用,默认使用的是`SimpleAsyncTaskExecutor`线程池,会为每个任务创建一个新线程(慎用)
public boolean updateInstanceNextScanTime(cn.ponfee.disjob.core.model.SchedInstance instance,
Date nextScanTime)
protected void abortBroadcastWaitingTask(long taskId)
AbstractJobManagerabortBroadcastWaitingTask 在类中 AbstractJobManagertaskId - the task idprotected List<cn.ponfee.disjob.core.model.SchedTask> listPausableTasks(long instanceId)
AbstractJobManagerlistPausableTasks 在类中 AbstractJobManagerinstanceId - the instance id@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public void triggerJob(long jobId)
throws cn.ponfee.disjob.core.exception.JobException
jobId - the job idcn.ponfee.disjob.core.exception.JobException - if occur error@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean createInstance(cn.ponfee.disjob.core.model.SchedJob job,
TriggerInstance triggerInstance)
job - the jobtriggerInstance - the trigger instancetrue if operated success@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public void updateTaskWorker(String worker,
List<Long> taskIds)
当worker不相同时,可使用`CASE WHEN`语法:
UPDATE sched_task SET worker =
CASE
WHEN task_id = 1 THEN 'a'
WHEN task_id = 2 THEN 'b'
END
WHERE id IN (1, 2)
worker - the workertaskIds - the task id listpublic cn.ponfee.disjob.core.dto.supervisor.StartTaskResult startTask(cn.ponfee.disjob.core.dto.supervisor.StartTaskParam param)
param - the start task parampublic void changeInstanceState(long instanceId,
cn.ponfee.disjob.core.enums.ExecuteState toExecuteState)
instanceId - the instance id, unsupported workflowtoExecuteState - the target execute statepublic void deleteInstance(long instanceId)
public boolean stopTask(cn.ponfee.disjob.core.dto.supervisor.StopTaskParam param)
param - the stop task paramtrue if stopped task successfulpublic boolean purgeInstance(cn.ponfee.disjob.core.model.SchedInstance inst)
inst - the sched instancetrue if purged successfullypublic boolean pauseInstance(long instanceId)
instanceId - the instance id, if workflow must be lead instance idtrue if paused successfullypublic boolean cancelInstance(long instanceId,
cn.ponfee.disjob.core.enums.Operation ops)
instanceId - the instance id, if workflow must be lead instance idops - the operationtrue if canceled successfullypublic boolean resumeInstance(long instanceId)
instanceId - the instance id, if workflow must be lead instance idtrue if resumed successfullyCopyright © 2024. All rights reserved.