[Fix](JobManager)Release the lock immediately after modifying job metadata to avoid holding the lock for an extended period.#38162 (#38163)
## Proposed changes #38162 <!--Describe your changes.-->
This commit is contained in:
@ -111,12 +111,19 @@ public class JobManager<T extends AbstractJob<?, C>, C> implements Writable {
|
||||
throw new JobException("job id exist, jobId:" + job.getJobId());
|
||||
}
|
||||
jobMap.put(job.getJobId(), job);
|
||||
//check its need to scheduler
|
||||
jobScheduler.scheduleOneJob(job);
|
||||
job.logCreateOperation();
|
||||
} finally {
|
||||
writeUnlock();
|
||||
}
|
||||
try {
|
||||
//check its need to scheduler
|
||||
jobScheduler.scheduleOneJob(job);
|
||||
} catch (Exception e) {
|
||||
// if scheduler job error, we need to unregister job
|
||||
log.warn(("first schedule job error,unregister job, jobName:" + job.getJobName()), e);
|
||||
unregisterJob(job.getJobId());
|
||||
throw new JobException("register job error, jobName:" + job.getJobName());
|
||||
}
|
||||
}
|
||||
|
||||
private void checkJobNameExist(String jobName) throws JobException {
|
||||
|
||||
Reference in New Issue
Block a user