package me.hao0.antares.store.dao.impl;
import me.hao0.antares.common.model.JobInstance;
import me.hao0.antares.store.dao.JobInstanceDao;
import me.hao0.antares.store.support.RedisKeys;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* Author: haolin
* Email: haolin.h0@gmail.com
*/
@Repository
public class JobInstanceDaoImpl extends RedisDao<JobInstance> implements JobInstanceDao {
@Override
public Boolean bindJob(Long jobId, Long jobInstanceId) {
String jobInstancesKey = RedisKeys.keyOfJobInstances(jobId);
return redis.opsForList()
.leftPush(jobInstancesKey, jobInstanceId.toString()) > 0L;
}
@Override
public Boolean unbindJob(Long jobId, Long jobInstanceId) {
String jobInstancesKey = RedisKeys.keyOfJobInstances(jobId);
return redis.opsForList()
.remove(jobInstancesKey, 1, jobInstanceId.toString()) > 0L;
}
@Override
public Long countByJobId(Long jobId) {
return redis.opsForList().size(RedisKeys.keyOfJobInstances(jobId));
}
@Override
public List<JobInstance> listByJobId(Long jobId, Integer offset, Integer limit) {
return list(RedisKeys.keyOfJobInstances(jobId), offset, limit);
}
@Override
public Long findMaxId(Long jobId) {
return findMaxId(RedisKeys.keyOfJobInstances(jobId));
}
}