@Component public class DistributedJobManager extends AbstractJobManager
Spring事务提交后执行一些后置操作
方案1: {@code
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {log| 构造器和说明 |
|---|
DistributedJobManager(cn.ponfee.disjob.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
WorkerServiceClient workerServiceClient,
org.springframework.transaction.support.TransactionTemplate transactionTemplate,
SchedJobMapper jobMapper,
SchedInstanceMapper instanceMapper,
SchedTaskMapper taskMapper,
SchedDependMapper dependMapper,
SchedWorkflowMapper workflowMapper) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addJob(cn.ponfee.disjob.core.model.SchedJob job) |
boolean |
cancelInstance(long instanceId,
Long wnstanceId,
cn.ponfee.disjob.core.enums.Operations ops)
Cancel instance
|
boolean |
cancelInstance(long instanceId,
cn.ponfee.disjob.core.enums.Operations ops) |
protected boolean |
cancelWaitingTask(long taskId)
Broadcast strategy task after assigned worker.
|
void |
changeInstanceState(long instanceId,
cn.ponfee.disjob.core.enums.ExecuteState toExecuteState) |
boolean |
changeJobState(long jobId,
cn.ponfee.disjob.core.enums.JobState to) |
boolean |
checkpoint(long taskId,
String executeSnapshot) |
boolean |
createInstance(cn.ponfee.disjob.core.model.SchedJob job,
TriggerInstance triggerInstance)
Update sched job, save sched instance and tasks.
|
void |
deleteInstance(long instanceId) |
void |
deleteJob(long jobId) |
boolean |
pauseInstance(long instanceId) |
boolean |
pauseInstance(long instanceId,
Long wnstanceId)
Pause instance
|
boolean |
purgeInstance(cn.ponfee.disjob.core.model.SchedInstance inst)
Purge the zombie instance which maybe dead
|
boolean |
renewInstanceUpdateTime(cn.ponfee.disjob.core.model.SchedInstance instance,
Date updateTime) |
boolean |
resumeInstance(long instanceId)
Resume the instance from paused to waiting state
|
boolean |
startTask(cn.ponfee.disjob.core.param.StartTaskParam param)
Starts the task
|
boolean |
stopJob(cn.ponfee.disjob.core.model.SchedJob job) |
boolean |
terminateTask(cn.ponfee.disjob.core.param.TerminateTaskParam param)
Terminate task
|
void |
triggerJob(long jobId)
Manual trigger the sched job
|
void |
updateJob(cn.ponfee.disjob.core.model.SchedJob job) |
boolean |
updateJobNextScanTime(cn.ponfee.disjob.core.model.SchedJob schedJob) |
boolean |
updateJobNextTriggerTime(cn.ponfee.disjob.core.model.SchedJob job) |
void |
updateTaskWorker(List<cn.ponfee.disjob.core.param.TaskWorkerParam> params)
Set or clear task worker
|
dispatch, dispatch, generateId, hasAliveExecuting, hasNotDiscoveredWorkers, hasNotDiscoveredWorkers, isAliveWorker, isAliveWorker, isDeadWorker, isDeadWorker, splitTasks, verifyJobpublic DistributedJobManager(cn.ponfee.disjob.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
WorkerServiceClient workerServiceClient,
@Qualifier(value="disjobTransactionTemplate")
org.springframework.transaction.support.TransactionTemplate transactionTemplate,
SchedJobMapper jobMapper,
SchedInstanceMapper instanceMapper,
SchedTaskMapper taskMapper,
SchedDependMapper dependMapper,
SchedWorkflowMapper workflowMapper)
public boolean stopJob(cn.ponfee.disjob.core.model.SchedJob job)
public boolean changeJobState(long jobId,
cn.ponfee.disjob.core.enums.JobState to)
public boolean updateJobNextTriggerTime(cn.ponfee.disjob.core.model.SchedJob job)
public boolean updateJobNextScanTime(cn.ponfee.disjob.core.model.SchedJob schedJob)
public boolean renewInstanceUpdateTime(cn.ponfee.disjob.core.model.SchedInstance instance,
Date updateTime)
protected boolean cancelWaitingTask(long taskId)
AbstractJobManagercancelWaitingTask 在类中 AbstractJobManagertaskId - the task idtrue if cancel successfulpublic boolean checkpoint(long taskId,
String executeSnapshot)
@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public void addJob(cn.ponfee.disjob.core.model.SchedJob job)
throws cn.ponfee.disjob.core.exception.JobException
cn.ponfee.disjob.core.exception.JobException@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public void updateJob(cn.ponfee.disjob.core.model.SchedJob job)
throws cn.ponfee.disjob.core.exception.JobException
cn.ponfee.disjob.core.exception.JobException@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public void deleteJob(long jobId)
@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(List<cn.ponfee.disjob.core.param.TaskWorkerParam> params)
params - the list of update task worker params@Transactional(transactionManager="disjobTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean startTask(cn.ponfee.disjob.core.param.StartTaskParam param)
param - the start task paramtrue if start successfullypublic void changeInstanceState(long instanceId,
cn.ponfee.disjob.core.enums.ExecuteState toExecuteState)
public void deleteInstance(long instanceId)
public boolean terminateTask(cn.ponfee.disjob.core.param.TerminateTaskParam param)
param - the terminal task paramtrue if terminated task successfulpublic boolean purgeInstance(cn.ponfee.disjob.core.model.SchedInstance inst)
inst - the sched instancetrue if purged successfullypublic boolean pauseInstance(long instanceId)
public boolean pauseInstance(long instanceId,
Long wnstanceId)
instanceId - the instance idwnstanceId - the workflow instance idtrue if paused successfullypublic boolean cancelInstance(long instanceId,
cn.ponfee.disjob.core.enums.Operations ops)
public boolean cancelInstance(long instanceId,
Long wnstanceId,
cn.ponfee.disjob.core.enums.Operations ops)
instanceId - the instance idwnstanceId - the workflow instance idops - the operationtrue if canceled successfullypublic boolean resumeInstance(long instanceId)
instanceId - the instance idtrue if resumed successfullyCopyright © 2023. All rights reserved.