@Component public class SchedulerJobManager extends AbstractJobManager implements cn.ponfee.scheduler.core.base.SupervisorService, cn.ponfee.scheduler.common.spring.RpcController
Spring事务提交后执行一些后置操作
方案1: {@code
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {log| 构造器和说明 |
|---|
SchedulerJobManager(cn.ponfee.scheduler.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
WorkerServiceClient workerServiceClient,
org.springframework.transaction.support.TransactionTemplate transactionTemplate,
SchedJobMapper jobMapper,
SchedInstanceMapper instanceMapper,
SchedTaskMapper taskMapper,
SchedDependMapper dependMapper) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addJob(cn.ponfee.scheduler.core.model.SchedJob job) |
boolean |
cancelExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
cn.ponfee.scheduler.core.enums.ExecuteState toState,
String errorMsg)
Cancel executing task
|
boolean |
cancelInstance(long instanceId,
cn.ponfee.scheduler.core.enums.Operations operation)
Cancel task by sched instance id
|
boolean |
changeJobState(long jobId,
cn.ponfee.scheduler.core.enums.JobState to) |
boolean |
checkpoint(long taskId,
String executeSnapshot) |
void |
deleteInstance(long instanceId) |
void |
deleteJob(long jobId) |
List<cn.ponfee.scheduler.core.model.SchedJob> |
findBeTriggering(long maxNextTriggerTime,
int size)
Scan will be triggering sched jobs.
|
List<cn.ponfee.scheduler.core.model.SchedInstance> |
findExpireRunning(Date expireTime,
int size) |
List<cn.ponfee.scheduler.core.model.SchedInstance> |
findExpireWaiting(Date expireTime,
int size) |
List<cn.ponfee.scheduler.core.model.SchedTask> |
findLargeTaskByInstanceId(long instanceId) |
List<cn.ponfee.scheduler.core.model.SchedTask> |
findMediumTaskByInstanceId(long instanceId) |
List<cn.ponfee.scheduler.core.model.SchedInstance> |
findUnterminatedRetry(long instanceId) |
void |
forceUpdateInstanceState(long instanceId,
int instanceTargetState,
int taskTargetState) |
cn.ponfee.scheduler.core.model.SchedInstance |
getByTriggerTime(long jobId,
long triggerTime,
int runType) |
cn.ponfee.scheduler.core.model.SchedInstance |
getInstance(long instanceId) |
cn.ponfee.scheduler.core.model.SchedJob |
getJob(long jobId) |
cn.ponfee.scheduler.core.model.SchedTask |
getTask(long taskId) |
boolean |
pauseExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
String errorMsg)
Pause executing task
|
boolean |
pauseInstance(long instanceId)
Pause task by sched instance id
|
boolean |
renewUpdateTime(cn.ponfee.scheduler.core.model.SchedInstance instance,
Date updateTime) |
boolean |
resumeInstance(long instanceId)
Resume sched instance from paused state to waiting state
|
boolean |
startTask(cn.ponfee.scheduler.core.param.ExecuteParam param)
Starts the task.
|
boolean |
stopJob(cn.ponfee.scheduler.core.model.SchedJob job)
Stop job
|
boolean |
terminateDeadInstance(long instanceId)
Terminate the dead instance.
|
boolean |
terminateExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
cn.ponfee.scheduler.core.enums.ExecuteState toState,
String errorMsg)
Terminate the executing task.
|
void |
triggerJob(long jobId)
Manual trigger the sched job
|
boolean |
updateAndSave(cn.ponfee.scheduler.core.model.SchedJob job,
cn.ponfee.scheduler.core.model.SchedInstance instance,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks)
Update sched job, and save one sched instance and many tasks.
|
boolean |
updateInstanceState(cn.ponfee.scheduler.core.enums.ExecuteState toState,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks,
cn.ponfee.scheduler.core.model.SchedInstance instance) |
void |
updateJob(cn.ponfee.scheduler.core.model.SchedJob job) |
boolean |
updateNextScanTime(long jobId,
Date nextScanTime,
int version) |
boolean |
updateNextTriggerTime(cn.ponfee.scheduler.core.model.SchedJob job) |
boolean |
updateTaskWorker(List<cn.ponfee.scheduler.core.param.TaskWorker> list)
Set or clear task worker
|
dispatch, dispatch, filterDispatchingTask, generateId, hasAliveExecuting, hasNotDiscoveredWorkers, hasNotDiscoveredWorkers, isAliveWorker, isAliveWorker, splitTasks, verifyJobHandlerpublic SchedulerJobManager(cn.ponfee.scheduler.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
WorkerServiceClient workerServiceClient,
@Qualifier(value="schedulerTransactionTemplate")
org.springframework.transaction.support.TransactionTemplate transactionTemplate,
SchedJobMapper jobMapper,
SchedInstanceMapper instanceMapper,
SchedTaskMapper taskMapper,
SchedDependMapper dependMapper)
public cn.ponfee.scheduler.core.model.SchedJob getJob(long jobId)
getJob 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicepublic cn.ponfee.scheduler.core.model.SchedInstance getInstance(long instanceId)
public cn.ponfee.scheduler.core.model.SchedTask getTask(long taskId)
getTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicepublic List<cn.ponfee.scheduler.core.model.SchedTask> findMediumTaskByInstanceId(long instanceId)
public List<cn.ponfee.scheduler.core.model.SchedTask> findLargeTaskByInstanceId(long instanceId)
public List<cn.ponfee.scheduler.core.model.SchedJob> findBeTriggering(long maxNextTriggerTime, int size)
maxNextTriggerTime - the maxNextTriggerTimesize - the sizepublic List<cn.ponfee.scheduler.core.model.SchedInstance> findExpireWaiting(Date expireTime, int size)
public List<cn.ponfee.scheduler.core.model.SchedInstance> findExpireRunning(Date expireTime, int size)
public cn.ponfee.scheduler.core.model.SchedInstance getByTriggerTime(long jobId,
long triggerTime,
int runType)
public List<cn.ponfee.scheduler.core.model.SchedInstance> findUnterminatedRetry(long instanceId)
public boolean checkpoint(long taskId,
String executeSnapshot)
checkpoint 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicecheckpoint 在接口中 cn.ponfee.scheduler.core.handle.Checkpointpublic boolean renewUpdateTime(cn.ponfee.scheduler.core.model.SchedInstance instance,
Date updateTime)
public boolean changeJobState(long jobId,
cn.ponfee.scheduler.core.enums.JobState to)
public boolean stopJob(cn.ponfee.scheduler.core.model.SchedJob job)
job - the jobtrue update successpublic boolean updateNextTriggerTime(cn.ponfee.scheduler.core.model.SchedJob job)
public boolean updateNextScanTime(long jobId,
Date nextScanTime,
int version)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void addJob(cn.ponfee.scheduler.core.model.SchedJob job)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void updateJob(cn.ponfee.scheduler.core.model.SchedJob job)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void deleteJob(long jobId)
public void deleteInstance(long instanceId)
public void forceUpdateInstanceState(long instanceId,
int instanceTargetState,
int taskTargetState)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void triggerJob(long jobId)
throws cn.ponfee.scheduler.core.exception.JobException
jobId - the job idcn.ponfee.scheduler.core.exception.JobException - if occur error@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean updateAndSave(cn.ponfee.scheduler.core.model.SchedJob job,
cn.ponfee.scheduler.core.model.SchedInstance instance,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks)
job - the jobinstance - the instancetasks - the taskstrue operated success@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean updateTaskWorker(List<cn.ponfee.scheduler.core.param.TaskWorker> list)
updateTaskWorker 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicelist - the listtrue if updated at least one row@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean startTask(cn.ponfee.scheduler.core.param.ExecuteParam param)
startTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparam - the execution paramtrue if start successfullypublic boolean terminateExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
cn.ponfee.scheduler.core.enums.ExecuteState toState,
String errorMsg)
terminateExecutingTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparam - the taskParamtoState - the toStateerrorMsg - the errorMsgtrue if terminated task successfulpublic boolean terminateDeadInstance(long instanceId)
instanceId - the instanceIdtrue terminate successfullypublic boolean pauseInstance(long instanceId)
pauseInstance 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceinstanceId - the instance idtrue if paused successfullypublic boolean pauseExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
String errorMsg)
pauseExecutingTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparam - the execution paramerrorMsg - the execution error messagetrue if paused successfullypublic boolean cancelInstance(long instanceId,
cn.ponfee.scheduler.core.enums.Operations operation)
cancelInstance 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceinstanceId - the instance idoperation - the operationtrue if canceled successfullypublic boolean cancelExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
cn.ponfee.scheduler.core.enums.ExecuteState toState,
String errorMsg)
cancelExecutingTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparam - the execution paramtoState - the target stateerrorMsg - the executed error messagetrue if canceled successfullypublic boolean resumeInstance(long instanceId)
instanceId - the instanceIdtrue if resumed successfullypublic boolean updateInstanceState(cn.ponfee.scheduler.core.enums.ExecuteState toState,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks,
cn.ponfee.scheduler.core.model.SchedInstance instance)
Copyright © 2023. All rights reserved.