@Component public class SchedulerJobManager extends AbstractSupervisorManager implements cn.ponfee.scheduler.core.base.SupervisorService, cn.ponfee.scheduler.common.spring.MarkRpcController
Spring事务提交后执行一些后置操作
方案1: {@code
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {log| 构造器和说明 |
|---|
SchedulerJobManager(cn.ponfee.scheduler.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
WorkerServiceClient workerServiceClient,
SchedJobMapper jobMapper,
SchedTrackMapper trackMapper,
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 |
cancelTrack(long trackId,
cn.ponfee.scheduler.core.enums.Operations operation)
Cancel task by sched track id
|
boolean |
changeJobState(long jobId,
cn.ponfee.scheduler.core.enums.JobState to) |
boolean |
checkpoint(long taskId,
String executeSnapshot) |
void |
deleteJob(long jobId) |
void |
deleteTrack(long trackId) |
List<cn.ponfee.scheduler.core.model.SchedJob> |
findBeTriggering(long maxNextTriggerTime,
int size)
Scan will be triggering sched jobs.
|
List<cn.ponfee.scheduler.core.model.SchedTrack> |
findExpireRunning(Date expireTime,
int size) |
List<cn.ponfee.scheduler.core.model.SchedTrack> |
findExpireWaiting(Date expireTime,
int size) |
List<cn.ponfee.scheduler.core.model.SchedTask> |
findLargeTaskByTrackId(long trackId) |
List<cn.ponfee.scheduler.core.model.SchedTask> |
findMediumTaskByTrackId(long trackId) |
List<cn.ponfee.scheduler.core.model.SchedTrack> |
findUnterminatedRetry(long trackId) |
void |
forceUpdateState(long trackId,
int trackTargetState,
int taskTargetState) |
cn.ponfee.scheduler.core.model.SchedTrack |
getByTriggerTime(long jobId,
long triggerTime,
int runType) |
cn.ponfee.scheduler.core.model.SchedJob |
getJob(long jobId) |
cn.ponfee.scheduler.core.model.SchedTask |
getTask(long taskId) |
cn.ponfee.scheduler.core.model.SchedTrack |
getTrack(long trackId) |
boolean |
pauseExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
String errorMsg)
Pause executing task
|
boolean |
pauseTrack(long trackId)
Pause task by sched track id
|
boolean |
renewUpdateTime(cn.ponfee.scheduler.core.model.SchedTrack track,
Date updateTime) |
boolean |
resume(long trackId)
Resume sched track 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 |
terminate(long trackId)
Terminate the running track and task.
|
boolean |
terminateExecutingTask(cn.ponfee.scheduler.core.param.ExecuteParam param,
cn.ponfee.scheduler.core.enums.ExecuteState toState,
String errorMsg)
Terminate the running task.
|
void |
trigger(long jobId)
Manual trigger the sched job
|
boolean |
updateAndSave(cn.ponfee.scheduler.core.model.SchedJob job,
cn.ponfee.scheduler.core.model.SchedTrack track,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks)
Update sched job, and save one sched track and many tasks.
|
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 |
updateState(cn.ponfee.scheduler.core.enums.ExecuteState toState,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks,
cn.ponfee.scheduler.core.model.SchedTrack track) |
boolean |
updateTaskErrorMsg(long taskId,
String errorMsg) |
boolean |
updateTaskWorker(List<Long> taskIds,
String worker) |
dispatch, dispatch, filterDispatchingTask, generateId, hasAliveExecuting, hasNotFoundWorkers, hasNotFoundWorkers, isAliveWorker, isAliveWorker, splitTasks, verifyJobHandlerpublic SchedulerJobManager(cn.ponfee.scheduler.common.base.IdGenerator idGenerator,
SupervisorRegistry discoveryWorker,
TaskDispatcher taskDispatcher,
WorkerServiceClient workerServiceClient,
SchedJobMapper jobMapper,
SchedTrackMapper trackMapper,
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.SchedTrack getTrack(long trackId)
public cn.ponfee.scheduler.core.model.SchedTask getTask(long taskId)
getTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicepublic List<cn.ponfee.scheduler.core.model.SchedTask> findMediumTaskByTrackId(long trackId)
public List<cn.ponfee.scheduler.core.model.SchedTask> findLargeTaskByTrackId(long trackId)
public List<cn.ponfee.scheduler.core.model.SchedJob> findBeTriggering(long maxNextTriggerTime, int size)
maxNextTriggerTime - the maxNextTriggerTimesize - the sizepublic List<cn.ponfee.scheduler.core.model.SchedTrack> findExpireWaiting(Date expireTime, int size)
public List<cn.ponfee.scheduler.core.model.SchedTrack> findExpireRunning(Date expireTime, int size)
public cn.ponfee.scheduler.core.model.SchedTrack getByTriggerTime(long jobId,
long triggerTime,
int runType)
public List<cn.ponfee.scheduler.core.model.SchedTrack> findUnterminatedRetry(long trackId)
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.SchedTrack track,
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)
public boolean updateTaskWorker(List<Long> taskIds, String worker)
updateTaskWorker 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicepublic boolean updateTaskErrorMsg(long taskId,
String errorMsg)
updateTaskErrorMsg 在接口中 cn.ponfee.scheduler.core.base.SupervisorService@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)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void deleteTrack(long trackId)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void forceUpdateState(long trackId,
int trackTargetState,
int taskTargetState)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void trigger(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.SchedTrack track,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks)
job - the jobtrack - the tracktasks - the taskstrue operated success@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 successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public 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 termination was successful@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean terminate(long trackId)
trackId - the trackIdtrue terminate successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean pauseTrack(long trackId)
pauseTrack 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicetrackId - the track idtrue if paused successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public 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 successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean cancelTrack(long trackId,
cn.ponfee.scheduler.core.enums.Operations operation)
cancelTrack 在接口中 cn.ponfee.scheduler.core.base.SupervisorServicetrackId - the track idoperation - the operationtrue if canceled successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public 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 successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean resume(long trackId)
trackId - the trackIdtrue if resumed successfully@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean updateState(cn.ponfee.scheduler.core.enums.ExecuteState toState,
List<cn.ponfee.scheduler.core.model.SchedTask> tasks,
cn.ponfee.scheduler.core.model.SchedTrack track)
Copyright © 2023. All rights reserved.