updated methods
This commit is contained in:
parent
5f9afd14d3
commit
874d59a706
@ -37,6 +37,6 @@ public interface JobService extends EntityDaoService {
|
||||
|
||||
PageData<Job> findJobsByTenantId(TenantId tenantId, PageLink pageLink);
|
||||
|
||||
Job findJobByKey(TenantId tenantId, String key);
|
||||
Job findLatestJobByKey(TenantId tenantId, String key);
|
||||
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ public class DefaultJobService extends AbstractEntityService implements JobServi
|
||||
@Transactional
|
||||
@Override
|
||||
public Job submitJob(TenantId tenantId, Job job) {
|
||||
if (jobDao.existsByKeyAndStatusOneOf(job.getKey(), QUEUED, PENDING, RUNNING)) {
|
||||
if (jobDao.existsByTenantAndKeyAndStatusOneOf(tenantId, job.getKey(), QUEUED, PENDING, RUNNING)) {
|
||||
throw new IllegalArgumentException("The same job is already queued or running");
|
||||
}
|
||||
if (jobDao.existsByTenantIdAndTypeAndStatusOneOf(tenantId, job.getType(), PENDING, RUNNING)) {
|
||||
@ -188,8 +188,8 @@ public class DefaultJobService extends AbstractEntityService implements JobServi
|
||||
}
|
||||
|
||||
@Override
|
||||
public Job findJobByKey(TenantId tenantId, String key) {
|
||||
return jobDao.findByKey(tenantId, key);
|
||||
public Job findLatestJobByKey(TenantId tenantId, String key) {
|
||||
return jobDao.findLatestByKey(tenantId, key);
|
||||
}
|
||||
|
||||
private Job findForUpdate(TenantId tenantId, JobId jobId) {
|
||||
|
||||
@ -30,9 +30,9 @@ public interface JobDao extends Dao<Job> {
|
||||
|
||||
Job findByIdForUpdate(TenantId tenantId, JobId jobId);
|
||||
|
||||
Job findByKey(TenantId tenantId, String key);
|
||||
Job findLatestByKey(TenantId tenantId, String key);
|
||||
|
||||
boolean existsByKeyAndStatusOneOf(String key, JobStatus... statuses);
|
||||
boolean existsByTenantAndKeyAndStatusOneOf(TenantId tenantId, String key, JobStatus... statuses);
|
||||
|
||||
boolean existsByTenantIdAndTypeAndStatusOneOf(TenantId tenantId, JobType type, JobStatus... statuses);
|
||||
|
||||
|
||||
@ -45,15 +45,15 @@ public interface JobRepository extends JpaRepository<JobEntity, UUID> {
|
||||
@Query("SELECT j FROM JobEntity j WHERE j.id = :id")
|
||||
JobEntity findByIdForUpdate(UUID id);
|
||||
|
||||
JobEntity findByTenantIdAndKey(@Param("tenantId") UUID tenantId, @Param("key") String key);
|
||||
JobEntity findLatestByTenantIdAndKey(UUID tenantId, String key);
|
||||
|
||||
boolean existsByKeyAndStatusIn(String key, List<JobStatus> statuses);
|
||||
boolean existsByTenantIdAndKeyAndStatusIn(UUID tenantId, String key, List<JobStatus> statuses);
|
||||
|
||||
boolean existsByTenantIdAndTypeAndStatusIn(UUID tenantId, JobType type, List<JobStatus> statuses);
|
||||
|
||||
@Lock(LockModeType.PESSIMISTIC_WRITE) // SELECT FOR UPDATE
|
||||
@Query("SELECT j FROM JobEntity j WHERE j.tenantId = :tenantId AND j.type = :type " +
|
||||
"AND j.status = :status ORDER BY j.createdTime ASC, j.id ASC")
|
||||
"AND j.status = :status ORDER BY j.createdTime ASC, j.id ASC")
|
||||
JobEntity findOldestByTenantIdAndTypeAndStatusForUpdate(UUID tenantId, JobType type, JobStatus status, Limit limit);
|
||||
|
||||
}
|
||||
|
||||
@ -55,13 +55,13 @@ public class JpaJobDao extends JpaAbstractDao<JobEntity, Job> implements JobDao
|
||||
}
|
||||
|
||||
@Override
|
||||
public Job findByKey(TenantId tenantId, String key) {
|
||||
return DaoUtil.getData(jobRepository.findByTenantIdAndKey(tenantId.getId(), key));
|
||||
public Job findLatestByKey(TenantId tenantId, String key) {
|
||||
return DaoUtil.getData(jobRepository.findLatestByTenantIdAndKey(tenantId.getId(), key));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean existsByKeyAndStatusOneOf(String key, JobStatus... statuses) {
|
||||
return jobRepository.existsByKeyAndStatusIn(key, Arrays.stream(statuses).toList());
|
||||
public boolean existsByTenantAndKeyAndStatusOneOf(TenantId tenantId, String key, JobStatus... statuses) {
|
||||
return jobRepository.existsByTenantIdAndKeyAndStatusIn(tenantId.getId(), key, Arrays.stream(statuses).toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user