@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,
SchedWorkflowMapper workflowMapper) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addJob(cn.ponfee.scheduler.core.model.SchedJob job) |
boolean |
cancelInstance(long instanceId,
cn.ponfee.scheduler.core.enums.Operations ops)
Cancel instance
|
protected boolean |
cancelWaitingTask(long taskId)
Broadcast strategy after assigned worker, and then the worker is dead,
the task always waiting state until canceled.
|
boolean |
changeJobState(long jobId,
cn.ponfee.scheduler.core.enums.JobState to) |
boolean |
checkpoint(long taskId,
String executeSnapshot) |
boolean |
createInstance(cn.ponfee.scheduler.core.model.SchedJob job,
TriggerInstance tInstance)
Update sched job, save sched instance and tasks.
|
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 rootInstanceId) |
void |
forceChangeState(long instanceId,
int targetExecuteState) |
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 |
pauseInstance(long instanceId)
Pause instance
|
boolean |
purgeInstance(long instanceId)
Purge the zombie instance which maybe dead
|
boolean |
renewUpdateTime(cn.ponfee.scheduler.core.model.SchedInstance instance,
Date updateTime) |
boolean |
resumeInstance(long instanceId)
Resume the instance from paused to waiting state
|
boolean |
startTask(cn.ponfee.scheduler.core.param.StartTaskParam param)
Starts the task
|
boolean |
stopJob(cn.ponfee.scheduler.core.model.SchedJob job) |
boolean |
terminateTask(cn.ponfee.scheduler.core.param.TerminateTaskParam param)
Terminate task
|
void |
triggerJob(long jobId)
Manual trigger the sched job
|
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) |
void |
updateTaskWorker(List<cn.ponfee.scheduler.core.param.TaskWorkerParam> params)
Set or clear task worker
|
dispatch, dispatch, generateId, hasAliveExecuting, hasNotDiscoveredWorkers, hasNotDiscoveredWorkers, isAliveWorker, isAliveWorker, isDeadWorker, isDeadWorker, splitTasks, verifyJobpublic 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,
SchedWorkflowMapper workflowMapper)
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 query data 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 rootInstanceId)
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)
public boolean updateNextTriggerTime(cn.ponfee.scheduler.core.model.SchedJob job)
public boolean updateNextScanTime(long jobId,
Date nextScanTime,
int version)
protected boolean cancelWaitingTask(long taskId)
AbstractJobManagercancelWaitingTask 在类中 AbstractJobManagertaskId - the task idtrue if cancel successful@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 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 createInstance(cn.ponfee.scheduler.core.model.SchedJob job,
TriggerInstance tInstance)
job - the jobtInstance - the trigger instancetrue if operated successpublic void deleteInstance(long instanceId)
public void forceChangeState(long instanceId,
int targetExecuteState)
@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public void updateTaskWorker(List<cn.ponfee.scheduler.core.param.TaskWorkerParam> params)
updateTaskWorker 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparams - the list of update task worker params@Transactional(transactionManager="schedulerTransactionManager",
rollbackFor=java.lang.Exception.class)
public boolean startTask(cn.ponfee.scheduler.core.param.StartTaskParam param)
startTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparam - the start task paramtrue if start successfullypublic boolean terminateTask(cn.ponfee.scheduler.core.param.TerminateTaskParam param)
terminateTask 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceparam - the terminal task paramtrue if terminated task successfulpublic boolean purgeInstance(long instanceId)
instanceId - the instance idtrue if purged successfullypublic boolean pauseInstance(long instanceId)
pauseInstance 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceinstanceId - the instance idtrue if paused successfullypublic boolean cancelInstance(long instanceId,
cn.ponfee.scheduler.core.enums.Operations ops)
cancelInstance 在接口中 cn.ponfee.scheduler.core.base.SupervisorServiceinstanceId - the instance idops - the operationtrue if canceled successfullypublic boolean resumeInstance(long instanceId)
instanceId - the instance idtrue if resumed successfullyCopyright © 2023. All rights reserved.