[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:
Calvin Kirs
2024-07-20 10:52:21 +08:00
committed by GitHub
parent 5ab038cd89
commit 87306858a1

View File

@ -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 {